En este procedimiento, debe configurar un servidor web Apache 2.2 desde cero y configurar el Proxy SSL en el nivel del núcleo como el mecanismo principal de control de sesiones SSL. Cuando el conjunto de cifrados SSL que ofrece el cliente no incluye un cifrado que ofrece el Proxy SSL en el nivel del núcleo, el servidor web Apache 2.2 sirve como un mecanismo de reserva. Este procedimiento implementa el escenario complejo que se muestra en la Figure 3–2.
Antes de empezar
Debe asumir el rol root. Para obtener más información, consulte Uso de sus derechos administrativos asignados de Protección de los usuarios y los procesos en Oracle Solaris 11.2 .
El siguiente comando genera una CSR y la clave privada asociada para el Proxy SSL en el nivel del núcleo:
# 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
Para obtener más información, consulte la página del comando man 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
Edite la línea Listen en el archivo /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
Este módulo agrega la escucha en el puerto 443 para conexiones cifradas.
# pfedit /root/put-passphrase.sh #!/usr/bin/ksh -p ## Reads Proxy SSL en el nivel del núcleo 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
Los valores de los parámetros SSLCertificateFile y SSLCertificateKeyFile del archivo ssl.conf contienen los nombres y la colocación esperados. Puede copiar los certificados a la ubicación correcta o establecer un enlace a ellos.
# 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
Utilice los comandos openssl s_client y kstat para ver los paquetes.
# openssl s_client -cipher RC4-SHA -connect web-server:443
Un aumento de 1 en el contador kstat kssl_full_handshakes verifica que la sesión SSL haya sido gestionada por el Proxy SSL en el nivel del núcleo.
# kstat -m kssl -s kssl_full_handshakes
# openssl s_client -cipher CAMELLIA256-SHA -connect web-server:443
Un aumento de 1 en el contador kstat kssl_fallback_connections verifica que el paquete llegó, pero la sesión SSL fue gestionada por el servidor web Apache.
# kstat -m kssl -s kssl_fallback_connections
El siguiente comando crea una instancia de servicio para el Proxy SSL en el nivel del núcleo que utiliza el formato de claves pem:
# ksslcfg create -f pem -i cert-and-key.pem -p kssl.pass -x 8443 443