Se configura el inicio automático de Apache para que incluya el módulo de SSL.
# vi /etc/rc.conf
apache2_flags="-DSSL"
Se establecen las ubicaciones donde se creará el certificado SSL.
# cd /usr/local/etc/apache22
# mkdir ssl.key
# mkdir ssl.crt
# chmod 0700 ssl.key
# chmod 0700 ssl.crt
Se crea el certificado SSL del servidor. Se deberán tener en cuenta las recomendaciones mencionadas en el artículo de soporte SSL para PGSQL. En particular, se deberá reemplazar la contraseña (MyPassPhrase) por una propia y privada.
# openssl genrsa -des3 -out server.key 1024
Enter pass phrase for server.key: MyPassPhrase
Solicitud de firma del certificado: Certificate Signing Request (CSR).
# openssl req -new -key server.key -out server.csr
Enter pass phrase for server.key: MyPassPhrase Verifying - Enter PEM pass phrase: MyPassPhrase Country Name (2 letter code) [AU]: CO State or Province Name (full name) [Some-State]: Caldas Locality Name (eg, city) []: Manizales Organization Name (eg, company) [Internet Widgits Pty Ltd]: Personal Development Organizational Unit Name (eg, section) []: Educacion Common Name (eg, YOUR name) []: webserver.mydomain.com Email Address []:jimezam@gmail.com A challenge password []: Certificado&2008k An optional company name []: Smiley World
Realización de la autofirma del certificado.
# openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt Enter pass phrase for server.key: MyPassPhrase
Ubicación de los certificados en sus ubicaciones finales.
# rm server.csr
# mv server.key ssl.key # mv server.crt ssl.crt
# chmod 0400 ssl.key/server.key # chmod 0400 ssl.crt/server.crt
Configuración de Apache para activar el módulo de SSL.
# vi /usr/local/etc/apache22/extra/httpd-ssl.conf
<VirtualHost _default_:443> DocumentRoot "/home/web" ServerName webserver.mydomain.com:443 ServerAdmin jimezam@gmail.com ErrorLog /var/log/ssl-error.log TransferLog /var/log/ssl-access.log SSLCertificateFile "/usr/local/etc/apache22/ssl.crt/server.crt" SSLCertificateKeyFile "/usr/local/etc/apache22/ssl.key/server.key" </VirtualHost>
# vi /usr/local/etc/apache22/httpd.conf
Include etc/apache22/extra/httpd-ssl.conf
Reiniciar el servicio de Apache.
# /usr/local/etc/rc.d/apache22 restart
Enter pass phrase: MyPassPhrase
Realizar la verificación de su funcionamiento consultando las siguientes direcciones web.
- http://webserver.mydomain.com
- https://webserver.mydomain.com
Cada vez que se inicie el servicio, como en el paso anterior, se solicitará la clave asignada. Esta característica fue diseñada por razones de seguridad, es necesaria ya que la llave RSA privada del archivo server.key se encuentra encriptada con ella, sin embargo es posible removerla bajo consideración del administrador. Para remover esta capa de seguridad se deben ejecutar los pasos siguientes.
# cd /usr/local/etc/apache22/ssl.key
# cp server.key server.key.orig
# openssl rsa -in server.key.org -out server.key
Enter pass phrase for server.key.orig: MyPassPhrase
# /usr/local/etc/rc.d/apache22 restart
Enlaces:
Jorge muy bueno el documento me sirvio para levantar mi https.
Nada mas fijate que la ultima parte hubo un error de tipeo nada mas.
cd /usr/local/etc/apache22/ssl.key
cp server.key server.key.orig
openssl rsa -in server.key.org -out server.key
/usr/local/etc/rc.d/apache22 restart
en donde dice openssl rsa -in server.key.org -out server.key deberia ser openssl rsa -in server.key.orig -out server.key
puse entre parentesis lo que faltaba.
Nuevamente muy bueno
Saludos @gusrotrek. Muchas gracias por tu complemento del artículo.