OHS kasutamine üle SSL'i
Sisukord
Eesmärk
Eesmärk on seada OHS (Oracle HTTP Server) käima üle SSL'i ehk https:// protokolli. Selleks tuleb kasutusele võtta serveri sertifikaat ning kehtesta Apache seadistusfaili tehtud vastavad muudatused.
Antud juhul tegeleb SSL protokolliga veebiserveri ise ja mitte Oracle WebCache. Selline moodus on asjakohane näiteks SSO (Single Sign-On) teenust pakkuva OHS puhul.
Sertifikaadi moodustamine
Oracle iAS hoiab sertifikaate ja võtmeid selleks ettenähtud konteineris, mida nimetatakse Wallet'iks (ingl. k. rahakott). Reegilina on Wallet kaitstud parooliga, mis tuleb Walleti moodustamisel ära näidata. Üheks võimaluseks OHS server sertifikaati kasutama õpetada on
- käivitada Walleti haldusprogramm owm (oracle wallet manager)
- moodustada seal sertifikaadipäring
- ekportida sertifikaadipäring ja oma lemmik CA'l lasta selle alusel moodustada sertifikaat
- laadida selle päringu alusel väljastatud sertifikaat ning CA sertifikaat Walletisse
Seejuures on oluline tähele panna, et Oracle sisaldab ka OCA (oracle certificate authority) vahendeid, tingimata ei pea aga neid kasutama kui eesmärgiks on vaid OHS õpetada https:// peal teenindama.
Wallet käivitamiseks tuleb öelda
$ export ORACLE_HOME=/opt/app/oracle_ias/oracle/infra/product/10.1.2 $ /opt/app/oracle_ias/oracle/infra/product/10.1.2/bin/owm
ning seejärel avaneb graafiline kasutajaliides, tundub, et serveri haldamisel on seda kõige otstarbekam kasutada üle VNC
Vaikimisi on walleti faili nimi
ewallet.p12
ning walleti kasutamisel, nt owm programmiga või OHS veebiserveriga tuleb näidata ära kataloog, kus see fail asub. Walleti salvestamisel saab lülitada sisse 'Auto-Login', mis tähendab seda, et Walleti kasutamisel veebiserveris parooli ei nõuta.
Walleti kasutamine
OHS veebiserveri SSL'i kasutama seadistamist kirjeldatakse üksikasjalikult näiteks sellistes materjalides
- Oracle Application Server Certificate Authority Administrator's Guide
- Noodis 351341.1 - How To Setup and Configure SSO/OHS for SSL
Lihtsamal juhul piisab järgmistest tegevustest
- Veebiserveri seadistusfailis $ORACLE_HOME/Apache/Apache/conf/ssl.conf tuleb teha sellised muudatused
< SSLSessionCache none --- > # SSLSessionCache none < # SSLSessionCache shmcb:/opt/app/oracle_ias/infra/product/10.1.2/Apache/Apache/logs/ssl_scache(512000) --- > SSLSessionCache shmcb:/opt/app/oracle_ias/infra/product/10.1.2/Apache/Apache/logs/ssl_scache(512000) < # SSLSessionCacheTimeout 300 --- > SSLSessionCacheTimeout 300 < SSLWallet file:/home/oracle/ssl --- > SSLWallet file:/opt/app/oracle_ias/infra/product/10.1.2/Apache/Apache/conf/ssl.wlt/default < SSLVerifyClient optional --- > #SSLVerifyClient require
Lisada VirtualHost sektsiooni lõppu
RewriteEngine on RewriteOptions inherit
- OPMN seadistusfailis teha muudatus
> --- <
- öelda
$ $ORACLE_HOME/sso/bin/ssocfg.sh https minu.domeen.ee 4443
- öelda
$ dcmctl updateConfig -v -d
- seista ja käivitada OHS
$ opmnctl stopproc ias-component=HTTP_Server $ opmnctl startproc ias-component=HTTP_Server
Tulemusena peaks pordil https://...:4443/ olema teenus nähtav.
Java keystore'i kasutamine
Kui iAS kontrolli all töötav Java rakendus peab saama pöörduda välja https teenuse poole kliendina, siis selleks tuleb reeglina lisada vastava teenuse juursertifikaat java keystore faili. Keystore'i saab hallata keytool utiliidiga, näiteks sedasi saab vaadata keystore'is olemasolevaid sertifikaate
$ keytool -list -keystore /tee/failini/cacerts -storepass changeit Keystore type: jks Keystore provider: SUN Your keystore contains 25 entries equifaxsecureebusinessca1, Jul 23, 2003, trustedCertEntry, Certificate fingerprint (MD5): 64:9C:EF:2E:44:FC:C6:8F:52:07:D0:51:73:8F:CB:3D verisignclass4ca, Jun 29, 1998, trustedCertEntry, Certificate fingerprint (MD5): 1B:D1:AD:17:8B:7F:22:13:24:F5:26:E2:5D:4E:B9:10 ...
'changeit' tundub olevat Java keystore'i default parool, sarnaselt kui Oracle andmebaasi näite skeemi ligipääsuks on tiger/scott vms.
Keystore faili CA sertifikaadi lisamiseks tuleb öelda näiteks
$ keytool -import -v -trustcacerts -alias juur-sk -file JUUR-SK.PEM.cer -keystore /tee/failini/cacerts -storepass changeit Owner: CN=Juur-SK, O=AS Sertifitseerimiskeskus, C=EE, EMAILADDRESS=pki@sk.ee Issuer: CN=Juur-SK, O=AS Sertifitseerimiskeskus, C=EE, EMAILADDRESS=pki@sk.ee Serial number: 3b8e4bfc Valid from: Thu Aug 30 16:23:01 EET 2001 until: Fri Aug 26 17:23:01 EEST 2016 Certificate fingerprints: MD5: AA:8E:5D:D9:F8:DB:0A:58:B7:8D:26:87:6C:82:35:55 SHA1: 40:9D:4B:D9:17:B5:5C:27:B6:9B:64:CB:98:22:44:0D:CD:09:B8:89 Trust this certificate? [no]:yes Certificate was added to keystore [Storing /tee/failini/cacerts]
Sertifikaadi keystore failist eemaldamiseks tuleb öelda
$ keytool -delete -alias juur-sk -keystore /tee/failini/cacerts -storepass changeit [Storing /tee/failini/cacerts]
Keystore'i sisu esitamine
$ keytool -list -keystore /tee/failini/cacerts -storepass changeit
Keystore'i sees sertifikaadi kopeerimine, tekkiv sertifikaat on DER formaadis
$ keytool -export -alias sertifikaadinimi -keystore /tee/failini/cacerts -storepass changeit -file sertifikaadinimi.der
PEM kujule teisendamiseks tuleb öelda nt
$ openssl x509 -inform der -outform pem -in sertifikaadinimi.der -out sertifikaadinimi.pem
Olemasolevast materjalist Oracle walleti tekitamine
Oracle dokumentatsioon on keskendunud üldiselt sellisele sertifikaatide kasutamise juhtumile, kus sertifikaadipäring moodustatakse OWM utiliidiga. Alternatiiviks on olukord, kui sertifikaat ja vastav salajane võti on olemas ja neid oleks lihtsalt vaja kasutama asuda Oracle tarkvaraga. Selleks tuleb Oracle tarkvaras sisalduva ssl2ossl utiliidi abil moodustada nn wallet
$ export LD_LIBRARY_PATH=/opt/app/oracle_ias/infra/product/10.1.2/lib $ /opt/app/oracle_ias/infra/product/10.1.2/Apache/Apache/bin/ssl2ossl -cert www.loomaaed.tartu.ee.crt -key www.loomaaed.tartu.ee.key \ -chain sk-chain.pem -wallet /home/oracle/wallet -ssowallet yes Enter wallet password: Verifying password - Enter wallet password: SUCCESS
kus
- -cert - sertifikaat
- -key - sertifikaadile vastav salajane võti
- -chain - nö 'cat KLASS3-SK.PEM.cer JUUR-SK.PEM.cer > sk-chain.pem' abil moodustatud CA ahel
- -wallet - wallet failide salvestamise kataloog
- -ssowallet yes - AutoLogin lülitatakse sisse
- parool - OWM utiliidiga avamisel küsitakse seda parooli
Tulemusena on moodustatud kataloogi /home/oracle/wallet kaks faili
$ ls -l -rw------- 1 oracle dba 5073 Sep 26 16:16 cwallet.sso -rw-r--r-- 1 oracle dba 4465 Sep 26 16:15 ewallet.p12
Eesti ID-kaardiga autentimine
Selleks, et oleks võimalik Eesti ID-kaardiga autentimine, tuleb lisada walletisse ESTEID-SK ja ESTEID-SK-2007 sertifikaadid valides owm programmi menüüst
Operations -> Import Trusted Certificate
Märkused
- Kui Auto-Login mitte sisse lülitada, tuleb walleti parool näidata OHS seadistusfailis parameetriga
SSLWalletPassword saladu5
SSO veebiserveri kasutamine
Olgu eesmärgiks kontrollida, kuidas toimub SSO veebiserveri teenuse pakkumine üle SSL'i. Selleks on kaks võimalust
- kasutada SSL-offloaderina mingit generic veebiserverit kusjuures sel juhul SSL OHS töötab http:// skeemiga
- kasutada SSO OHS veebiserverit avaliku https:// skeemiga teenuse pakkumiseks