OHS kasutamine üle SSL'i

Allikas: Kuutõrvaja

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

Owm-1.gif

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