Dans cette procédure, vous configurez de toutes pièces un serveur Web Apache 2.2 et configurez le proxy SSL au niveau du noyau en tant que mécanisme de traitement de session SSL principal. Lorsque l'ensemble de chiffrements SSL proposé par le client n'inclut aucun chiffrement offert par le proxy SSL au niveau du noyau, le serveur Web Apache 2.2 sert de solution de repli. Cette procédure met en oeuvre le scénario complexe illustré à la Figure 3–2.
Avant de commencer
Vous devez prendre le rôle root. Pour plus d'informations, reportez-vous à la section A l’aide de vos droits administratifs attribués du manuel Sécurisation des utilisateurs et des processus dans Oracle Solaris 11.2 .
La commande suivante génère une demande de signature de certificat et la clé privée qui lui est associée pour le proxy SSL au niveau du noyau :
# cd /root # openssl req \ > -x509 -new \ > -subj "/C=CZ/ST=Prague region/L=Prague/CN=`hostname`" \ > -newkey rsa:2048 -keyout webkey.pem \ > -out webcert.pem Generating a 2048 bit RSA private key .+++ ........+++ writing new private key to 'webkey.pem' Enter PEM pass phrase: JohnnyCashIsCool Verifying - Enter PEM pass phrase: JohnnyCashIsCool # # chmod 440 /root/webcert.pem ; chown root:webservd /root/webcert.pem
Pour plus d'informations, reportez-vous à la page de manuel openssl(5).
# echo "RefrigeratorsAreCool" > /root/kssl.pass # chmod 440 /root/kssl.pass; chown root:webservd /root/kssl.pass
# cat /root/webcert.pem /root/webkey.pem > /root/webcombo.pem
# ksslcfg create -f pem -i /root/webcombo.pem -x 8443 -p /root/kssl.pass 443
Modifiez la ligne Listen dans le fichier /etc/apache2/2.2/httpd.conf.
# pfedit /etc/apache2/2.2/httpd.conf ... ## Listen 80 Listen 8443
# cp /etc/apache2/2.2/samples-conf.d/ssl.conf /etc/apache2/2.2/ssl.conf
Ce module ajoute l'écoute des connexions chiffrées sur le port 443.
# pfedit /root/put-passphrase.sh #!/usr/bin/ksh -p ## Reads proxy SSL au niveau du noyau passphrase /usr/bin/cat /root/kssl.pass
# chmod 500 /root/put-passphrase.sh # chown webservd:webservd /root/put-passphrase.sh
# pfedit /etc/apache2/2.2/ssl.conf ... ## SSLPassPhraseDialog builtin SSLPassPhraseDialog exec:/root/put-passphrase.sh
Les valeurs des paramètres SSLCertificateFile et SSLCertificateKeyFile dans le fichier ssl.conf indiquent les emplacements et les noms attendus. Vous pouvez copier les certificats aux emplacements corrects ou créer des liens vers ces emplacements.
# ln -s /root/webcert.pem /etc/apache2/2.2/server.crtSSLCertificateFile default location # ln -s /root/webkey.pem /etc/apache2/2.2/server.keySSLCertificateKeyFile default location
# svcadm enable apache22
Utilisez les commandes openssl s_client et kstat pour afficher les paquets.
# openssl s_client -cipher RC4-SHA -connect web-server:443
Une augmentation de 1 du compteur kstatkssl_full_handshakes vérifie que la session SSL a été traitée par le proxy SSL au niveau du noyau.
# kstat -m kssl -s kssl_full_handshakes
# openssl s_client -cipher CAMELLIA256-SHA -connect web-server:443
Une augmentation de 1 du compteur kstatkssl_fallback_connections vérifie que le paquet est arrivé mais que la session SSL a été traitée par le serveur Web Apache.
# kstat -m kssl -s kssl_fallback_connections
La commande suivante permet de créer une instance de service pour le proxy SSL au niveau du noyau qui utilise le format de clé pem :
# ksslcfg create -f pem -i cert-and-key.pem -p kssl.pass -x 8443 443