Instalar certificado https autofirmado en CentOS 7 y Nginx

Instalar certificado https autofirmado en CentOS 7 y Nginx

Vamos a instalar un certificaddo ssl para nuestro servidor Nginx para servir https. Hay que tener en cuenta que usar un certificado autofirmado que no esta emitido por una institución certificadora en el navegador nos mostrará el mensaje de sitio inseguro a pesar de contar con el https. Esto no es problema para un uso privado o controlado de algún sistema o aplicación web.

Verificamos si ya tenemos instalado openssl

ShellScript
 yum info openssl

si no lo tenemos instalado, procedemos

ShellScript
 yum install openssl

abrimos el puerto 443 que es para https

ShellScript
 firewall-cmd --zone=public --add-port=443/tcp --permanent

reiniciamos

ShellScript
 firewall-cmd --reload

Ingresamos a

ShellScript
 cd /etc/pki/tls/misc/

Luego creamos en entidad certidicadora

ShellScript
 ./CA -newca

Presionamos enter, agregamos una clave nueva y repetimos la clave

ShellScript
 Enter PEM pass phrase:
 Verifying - Enter PEM pass phrase:

Completamos los siguientes campos

El pais

ShellScript
 Country Name (2 letter code) [XX]:PE

Ciudad

ShellScript
 State or Province Name (full name) []:TRUJILLO
 Locality Name (eg, city) [Default City]:TRUJILLO

Nombre de la empresa

ShellScript
 Organization Name (eg, company) [Default Company Ltd]:NOMBRE EMPRESA

Giro de negocio

ShellScript
 Organizational Unit Name (eg, section) []:TURISMO

Nombre del server

ShellScript
 Common Name (eg, your name or your server's hostname) []:nombreservidor

Email

ShellScript
 Email Address []:administracion@correo.com

Estos campos los dejamos vacios

ShellScript
 A challenge password []:
 An optional company name []:

Ingresamos una vez mas nuestra clave

ShellScript
 Enter pass phrase for /etc/pki/CA/private/./cakey.pem:

Ahora crear los certificados

ShellScript
 ./CA -newreq-nodes

Se presentará los campos anteriores. Igualmente completamos y luego de terminar

Ahora creamos la clave

ShellScript
 ./CA -sign

Luego ingresamos nuestra clave

ShellScript
 Enter pass phrase for /etc/pki/CA/private/cakey.pem:

Damos YES 2 veces para terminar

Luego cambiamos de nombre a nuestro certificado y clave

ShellScript
 mv newcert.pem https.crt
ShellScript
 mv newreq.pem https.key

Luego movemos los archivos

ShellScript
 mv https.crt /etc/pki/tls/certs/
ShellScript
 mv https.key /etc/pki/tls/private

Luego aplicamos los certificados y key a nginx. Editamos.

ShellScript
 /etc/nginx/conf.d/mistio.conf

Agregamos redirección del puerto 80 al 443 y el respectivo certificado y key

ShellScript
server {
        listen 80;
       	server_name sitio.com; 
        return 301 https://$host$request_uri;
}

server {
        listen 443 ssl;
       	server_name sitio.com; #ip o dominio del sitio
        
		    ssl_certificate /etc/pki/tls/certs/https.crt;
		    ssl_certificate_key /etc/pki/tls/private/https.key;        
        
        root   /var/www/html/sitio.com/; #ruta principal del sitio
}

Verificamos

ShellScript
 nginx -t

Reiniciamos nginx

ShellScript
systemctl restart nginx

Luego ingresamos a nuestro enlace https en nuestro navegador y veremos el siguiente mensaje. Este mensaje es normal porque el certificado no es emitido por una institución certificadora. Solo agregaremos nuestra excepción para nuestra url y con eso ya podemos usar o servir https.

Comentarios

No hay comentarios aún. ¿Por qué no comienzas el debate?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *