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
yum info openssl
si no lo tenemos instalado, procedemos
yum install openssl
abrimos el puerto 443 que es para https
firewall-cmd --zone=public --add-port=443/tcp --permanent
reiniciamos
firewall-cmd --reload
Ingresamos a
cd /etc/pki/tls/misc/
Luego creamos en entidad certidicadora
./CA -newca
Presionamos enter, agregamos una clave nueva y repetimos la clave
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:
Completamos los siguientes campos
El pais
Country Name (2 letter code) [XX]:PE
Ciudad
State or Province Name (full name) []:TRUJILLO
Locality Name (eg, city) [Default City]:TRUJILLO
Nombre de la empresa
Organization Name (eg, company) [Default Company Ltd]:NOMBRE EMPRESA
Giro de negocio
Organizational Unit Name (eg, section) []:TURISMO
Nombre del server
Common Name (eg, your name or your server's hostname) []:nombreservidor
Email Address []:administracion@correo.com
Estos campos los dejamos vacios
A challenge password []:
An optional company name []:
Ingresamos una vez mas nuestra clave
Enter pass phrase for /etc/pki/CA/private/./cakey.pem:
Ahora crear los certificados
./CA -newreq-nodes
Se presentará los campos anteriores. Igualmente completamos y luego de terminar
Ahora creamos la clave
./CA -sign
Luego ingresamos nuestra clave
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
mv newcert.pem https.crt
mv newreq.pem https.key
Luego movemos los archivos
mv https.crt /etc/pki/tls/certs/
mv https.key /etc/pki/tls/private
Luego aplicamos los certificados y key a nginx. Editamos.
/etc/nginx/conf.d/mistio.conf
Agregamos redirección del puerto 80 al 443 y el respectivo certificado y key
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
nginx -t
Reiniciamos nginx
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.

Enamorado del blues, la trova y el rock. Un apasionado a tiempo completo de la tecnología, pivoteo y me adapto a cada nuevo paso que se da. Busco continuamente las mejores prácticas y metodologías para asegurar la calidad en el software y los procesos de negocio. Algunas horas las dedico a buscar conocimiento en filosofía y teología.