Red de conocimiento informático - Material del sitio web - Cómo crear un certificado SSL autofirmado para Nginx en CentOS 7

Cómo crear un certificado SSL autofirmado para Nginx en CentOS 7

1. Genera un certificado autofirmado

Normalmente, los servidores configurados para https requieren un certificado X509 certificado por una organización CA oficial. Cuando un cliente se conecta a un servidor https, verifica la exactitud del certificado con la clave *** de la CA. Sin embargo, obtener un certificado de CA es muy problemático y requiere una determinada tarifa. Por lo tanto, algunas instituciones pequeñas suelen utilizar certificados autofirmados. Es decir, se convierten en su propia CA y firman sus propios certificados de servidor.

Este proceso tiene dos pasos principales, primero generar su propio certificado de CA y luego generar y firmar un certificado de servidor único. Utilizo OpenSSL para generar un certificado autofirmado.

El primer paso es crear un certificado de CA:

openssl genrsa -des3 -out my-ca.key 2048

openssl req -new -x509 - días 3650 -key my-ca.key -out my-ca.crt

Esto generará los archivos my-ca.key y my-ca.crt. El primero contiene la clave necesaria para firmar con my-ca.crt y debe mantenerse seguro. Este último está disponible públicamente. El comando anterior establece un período de validez de 10 años para my-ca.key.

Puedes usar el comando

openssl x509 -in my-ca.crt -text -noout

para ver el contenido de my-ca.crt. archivo.

Con el certificado CA, puedes generar un certificado para el servidor:

openssl genrsa -des3 -out mars-server.key 1024

openssl req - nuevo -key mars-server.key -out mars- server.csr

openssl x509 -req -in mars-server.csr -out mars-server.crt -sha1 -CA my-ca.crt - CAkey my-ca.key -CAcreateserial -days 3650

Los dos primeros comandos generan los archivos clave y csr, y el último comando crea el certificado de firma x509 para mars-server.csr a través de my-ca.crt .

Cabe señalar que al ejecutar el segundo comando anterior, la opción de nombre común debe ser el nombre de dominio del servidor, de lo contrario aparecerá un mensaje adicional cada vez que el usuario acceda a través del protocolo https.

Puedes usar el comando

openssl x509 -in mars-server.crt -text -noout

para ver el contenido de mars-server.crt. archivo.

2. Configure el servidor Apache

Primero, cree el directorio /etc/apache2/ssl y agregue my-ca.crt, mars-server.key y mars-server. que acaba de crear. El archivo .crt se copia en este directorio.

Ejecute el comando

a2emod ssl

Active el módulo SSL de Apache y luego agregue el host virtual en /etc/apache2/sites-enable/.

El proceso de agregar es similar a agregar un host virtual normal, pero el puerto del host es 443 y la configuración es la siguiente:

NameVirtualHost *: 443

lt VirtualHost *: 443gt; ;

Nombre del servidor localhost

DocumentRoot /var/www

SSLEngine activado

SSLCipherSuite ALTO: MEDIO

Protocolo SSL all -SSLv2

SSLCertificateFile /etc/apache2/ssl/mars-server.crt

SSLCertificateKeyFile /etc/apache2/ssl/mars-server.key

SSLCACertificateFile /etc/apache2/ssl/ my-ca.crt

lt; Directorio /var /wwwgt;

Orden denegada, permitir

Permitir desde localhost

lt; /Directorygt;

lt;/VirtualHostgt;

lt;VirtualHost *: 80gt;

Nombre del servidor localhost

DocumentRoot /var/www

lt; Directorio /var/wwwgt; Orden denegada, permitir

Permitir desde localhost

lt;/Directorygt;

lt; /VirtualHostgt;

La configuración anterior garantiza que los usuarios vean el mismo contenido en el puerto 443 y el puerto 80, solo que con protocolos diferentes. Después de cambiar la configuración, puede reiniciar el servidor Apache e ingresar la contraseña para mars-server.key. Utilice un navegador para visitar

https://localhost/

Debería ver un cuadro de diálogo emergente que le pedirá que confirme si confía en el certificado del sitio web. Después de seleccionar confianza, puede. puede ver el contenido del sitio web.

Dado que la mayoría de los servidores Apache se inician automáticamente cuando se inicia el servidor, para evitar ingresar una contraseña al iniciar Apache, puede usar el siguiente comando para generar un archivo mars-server.key sin cifrar:

p >

openssl rsa -in mars-server.key -out mars-server.key.insecure

Reemplace el archivo de clave original con el mars-server.key.insecure recién generado.