He configurado SSL en mi servidor web, ahora necesito dos archivos:
- un certificado
- una clave de certificado
¿Cómo creo un certificado autofirmado para fines de prueba?
He configurado SSL en mi servidor web, ahora necesito dos archivos:
¿Cómo creo un certificado autofirmado para fines de prueba?
Respuestas:
Ubuntu, incluso el sabor 'mínimo', viene con el ssl-cert
paquete preinstalado, lo que significa que no necesita hacer nada.
Los archivos que está buscando ya están en su sistema:
/etc/ssl/certs/ssl-cert-snakeoil.pem
/etc/ssl/private/ssl-cert-snakeoil.key
Avanzado:
Si por alguna razón necesita crear un certificado nuevo, puede ejecutar
sudo make-ssl-cert generate-default-snakeoil --force-overwrite
Si desea cambiar la fecha de vencimiento de su certificado, puede manipular el script make-ssl-cert en /usr/sbin/make-ssl-cert
. Alrededor de 124 hay una línea similar a esta:
openssl req -config $TMPFILE -new -x509 -nodes \
Donde puede cambiar la fecha de vencimiento agregando el -days
argumento:
openssl req -config $TMPFILE -new -days 365 -x509 -nodes \
Se pueden encontrar más opciones en la página del manual dereq
.
/usr/share/ssl-cert/ssleay.cnf
.
www.test.mydomain.com
) usando el hostname
comando en la CLI de VM. Luego, vuelva a generar la clave como sugiere, con --force-overwrite
el Nombre común (CN) de la clave y luego coincida con la URL de prueba. Finalmente, en la máquina host, la instalación de la clave como una Autoridad de certificación raíz de confianza (en Configuración / Avanzado de Chrome) me dio la codiciada barra de direcciones verde.
make-ssl-cert
comando me salvó el día!
Como ya se mencionó, Ubuntu Server viene con las herramientas necesarias. Dependiendo de la versión de su servidor, tendrá que buscar la documentación específica . Trataré de resumir el proceso de generación de certificados autofirmados del LTS actual (12.04) .
Primero genera las claves para la Solicitud de firma de certificado (CSR):
openssl genrsa -des3 -out server.key 2048
Depende de usted ingresar una frase de contraseña o no. Si lo hace, cada vez que (re) inicie un servicio con ese certificado, deberá proporcionar la frase de contraseña. De nuevo, puede crear una clave "insegura" sin una frase de contraseña segura:
openssl rsa -in server.key -out server.key.insecure
# shuffle the key names to continue without passphrases
mv server.key server.key.secure
mv server.key.insecure server.key
Y ahora creará la CSR a partir de la clave. Con la CSR y la clave se puede generar un certificado autofirmado:
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
El último paso consiste en instalar el certificado y la clave, en Debian / Ubuntu, generalmente en /etc/ssl
:
sudo cp server.crt /etc/ssl/certs
sudo cp server.key /etc/ssl/private
Y finalmente, las aplicaciones que utilizan el certificado / clave deben configurarse en consecuencia.