# rm-rf.es | Administración de sistemas

Bitácora personal de un SysAdmin Gnu/Linux, Windows, BSD...

Generar un certificado SSL propio con openssl

Gracias a OpenSSL, tenemos la posibilidad de crear certificados SSL “self-signed“, es decir, firmados por nosotros mismos para encriptar las conexiones a un sitio web bajo Apache. Normalmente, para un servidor en producción lo lógico es utilizar un certificado SSL firmado por una entidad autorizada y confiable “Trusted Certificate Authority“, no obstante, en servidores beta o de pruebas es muy útil para utilizar conexión segura sin necesitar un SSL autorizado.

Lo primero que debemos hacer es instalar mod_ssl y openssl para activar el soporte SSL en Apache (podemos hacerlo con yum, apt…):

yum install mod_ssl openssl

Una vez instalados los módulos, procederemos con la creación del certificado. En primera instancia generamos la llave privada(private-key):

openssl genrsa -out cert.key 1024

Ahora generamos el CSR (Certificate Signing Request), usando la key generada antes:

openssl req -new -key cert.key -out cert.csr

Y ahora generamos el certificado en sí utilizando la key y el CSR:

openssl x509 -req -days 365 -in cert.csr -signkey cert.key -out cert.crt

Ahora para mayor comodidad podéis mover los tres ficheros (cert.csr, cert.crt y cert.key) a la ruta donde guardéis los SSL, por ejemplo /etc/ssl/

Solamente falta configurar el sitio web o el servidor web entero para que utilice el SSL, si es solo para un sitio web bajo virtualhost, añadir lo siguiente dentro del <virtualhost>, son las rutas al certificado y su key correspondiente:

SSLCertificateFile /etc/ssl/cert.crt
SSLCertificateKeyFile /etc/ssl/cert.key

Si fuerais a hacerlo para todo el servidor web, lo normal es cambiar los valores indicados anteriormente en el fichero de configuración general del ssl, que suele ser:

/etc/httpd/conf.d/ssl.conf

Una vez hecho esto, reiniciad apache y ya deberíais navegar correctamente bajo SSL, tened en cuenta que navegadores como firefox o explorer no reconocerán el SSL ya que está firmado por nosotros mismos y no una firma autorizada, no obstante, aceptad el certificado y trabajad normalmente.

Para más información sobre OpenSSL, opciones de comando y personalización del certificado:

http://www.openssl.org/docs/apps/openssl.html

Ver el perfil de Alejandro García García en LinkedIn