Cómo crear un certificado SSL (activar https) en Nginx para Ubuntu 14.04 o Debian
Introducción
TLS, o la seguridad de capa de transporte, y su predecesor SSL,
siglas de Secure Sockets Layer, son protocolos web utilizan para
envolver el tráfico normal en una protegida, envoltura de cifrado.
Utilizando esta tecnología, los servidores pueden enviar tráfico de forma segura entre el servidor y el cliente sin la preocupación de que los mensajes serán interceptados y leídos por un tercero. El sistema de certificados también ayuda a los usuarios en la verificación de la identidad de los sitios que se conectan con.
En esta guía, le mostraremos cómo instalar un certificado SSL autofirmado para su uso con un servidor web Nginx en un servidor de Ubuntu 14.04. Un certificado autofirmado no validará la identidad de su servidor para sus usuarios, ya que no está firmado por una de las autoridades de certificación de confianza de su navegador web, pero le permitirá cifrar las comunicaciones con sus clientes web.
Usted debe tener un usuario no root disponibles que tiene
Después de eso, usted también tendrá que tener el servidor web Nginx instalado. Si desea instalar un todo LEMP (Linux, Nginx, MySQL, PHP) pila en su servidor, puede seguir nuestra guía en la creación de LEMP en Ubuntu 14.04 .
Si lo que desea es el servidor web Nginx, en su lugar puede simplemente escribir:
Se le pedirá una serie de preguntas. Antes de que vayamos más de eso, vamos a echar un vistazo a lo que está sucediendo en el comando que estamos emitiendo:
Rellene las instrucciones adecuadamente. La línea más importante es la que pide al
La totalidad de las indicaciones se verá algo como esto:
Tanto de los archivos que ha creado se colocará en el
Nginx versiones 0.7.14 y superiores (Ubuntu 14.04 incluye la versión 1.4.6) puede habilitar SSL en el mismo bloque de servidor como el tráfico HTTP regular. Esto nos permite configurar el acceso al mismo sitio de una manera mucho más sucinta.
Su bloque de servidor puede ser algo como esto:
Ahora, todo lo que tienes que hacer es reiniciar Nginx para usar la nueva configuración:
En primer lugar, vamos a probar para asegurarse de que todavía podemos acceder al sitio con el uso de HTTP normal. En su navegador web, vaya a nombre de dominio de su servidor o la dirección IP:
Usted debe ver su página web normal. En mi ejemplo, yo estoy sirviendo a la página por defecto Nginx:
Si usted recibe esta página, entonces su servidor sigue manejando peticiones HTTP correctamente.
Ahora, podemos comprobar si nuestro servidor puede utilizar SSL para comunicarse. Haga esto especificando el
Usted probablemente recibirá una advertencia en su navegador web que se ve algo como esto:
Con ello se espera. Se le está diciendo que no puede verificar la identidad del servidor al que está intentando conectarse, ya que no está firmado por una autoridad de certificación que el navegador se ha configurado para confiar. Desde que hemos creado un certificado autofirmado, esto tiene mucho sentido.
Haga clic en "Continuar de todas formas", "Continuar", o lo que sea opción similar está disponible. Usted debe ver a su sitio de nuevo:
Su navegador puede mostrar el "https" cruzaron en la barra de direcciones o un roto o tachado de "bloqueo" icono. Si hace clic en el icono de bloqueo, se puede ver un poco más de información acerca de la conexión:
Como puede ver, la cuestión es sólo que el navegador no puede verificar la identidad del servidor, ya que no está firmado por una autoridad de certificación que está configurado para confiar. La sección central muestra que la conexión está encriptada, sin embargo, por lo que hemos logrado ese objetivo.
Si usted está planeando sobre el uso de SSL para un sitio web público, es probable que debe adquirir un certificado SSL de una autoridad certificadora de confianza para evitar las advertencias de miedo de que nos llevaron a cada uno de sus visitantes.
Autor: Justin Ellingwood
Tomado de: https://www.digitalocean.com/community/tutorials/how-to-create-an-ssl-certificate-on-nginx-for-ubuntu-14-04
Utilizando esta tecnología, los servidores pueden enviar tráfico de forma segura entre el servidor y el cliente sin la preocupación de que los mensajes serán interceptados y leídos por un tercero. El sistema de certificados también ayuda a los usuarios en la verificación de la identidad de los sitios que se conectan con.
En esta guía, le mostraremos cómo instalar un certificado SSL autofirmado para su uso con un servidor web Nginx en un servidor de Ubuntu 14.04. Un certificado autofirmado no validará la identidad de su servidor para sus usuarios, ya que no está firmado por una de las autoridades de certificación de confianza de su navegador web, pero le permitirá cifrar las comunicaciones con sus clientes web.
Requisitos previos
Para empezar a trabajar en esta guía, usted tendrá que configurar algunas cosas básicas en su servidor.Usted debe tener un usuario no root disponibles que tiene
sudo
privilegios. Usted puede aprender cómo configurar una cuenta de dicho usuario siguiendo los pasos 1-4 en nuestra configuración inicial del servidor de Ubuntu 14.04 . Después de eso, usted también tendrá que tener el servidor web Nginx instalado. Si desea instalar un todo LEMP (Linux, Nginx, MySQL, PHP) pila en su servidor, puede seguir nuestra guía en la creación de LEMP en Ubuntu 14.04 .
Si lo que desea es el servidor web Nginx, en su lugar puede simplemente escribir:
sudo apt-get update sudo apt-get install nginx
Paso uno - Crear el certificado SSL
Podemos empezar por la creación de un directorio que se utiliza para mantener toda nuestra información de SSL. Debemos crear esta bajo el directorio de configuración de Nginx: sudo mkdir /etc/nginx/ssl
Ahora que tenemos un lugar para colocar nuestros archivos, podemos crear los archivos de claves y certificados SSL en un solo movimiento, escribiendo:
sudo openssl req -x509 -nodes -days 1095 -newkey rsa:2048 -keyout /etc/nginx/ssl/nginx.key -out /etc/nginx/ssl/nginx.crt
Se le pedirá una serie de preguntas. Antes de que vayamos más de eso, vamos a echar un vistazo a lo que está sucediendo en el comando que estamos emitiendo:
- openssl: Se trata de la herramienta de línea de comandos básicos para crear y gestionar certificados de OpenSSL, llaves y otros archivos.
- req: Este subcomando especifica que queremos usar solicitud de certificado de firma X.509 gestión (RSE). El "X.509" es un estándar de la infraestructura de clave pública que SSL y TLS se adhiere a por su llave y gestión de certificados. Queremos crear un nuevo certificado X.509, por lo que estamos utilizando este subcomando.
- -x509: Esto modifica aún más el subcomando anterior diciendo la utilidad que queremos hacer un certificado autofirmado en lugar de generar una solicitud de firma de certificado, como normalmente sucedería.
- -nodes: Esto le dice OpenSSL para saltarse la opción de asegurar nuestro certificado con una frase de contraseña. Necesitamos Nginx para poder leer el archivo, sin intervención del usuario, cuando el servidor se inicia. Una frase de paso sería evitar que esto suceda, porque tendríamos que entrar en él después de cada reinicio.
- -days 365: Esta opción establece la cantidad de tiempo que el certificado se considerará válido. Nos pusimos por un año aquí.
- rsa -newkey: 2048: Esto especifica que queremos generar un nuevo certificado y una nueva clave al mismo tiempo.
No hemos creado la clave que se requiere para firmar el certificado en
un paso anterior, por lo que necesitamos para crear junto con el
certificado. El
rsa:2048
parte dice que para hacer una clave RSA que es de 2048 bits de longitud. - -keyout: Esta línea le dice OpenSSL dónde colocar el archivo de clave privada generada que estamos creando.
- salida privado: Esto le dice OpenSSL dónde colocar el certificado que estamos creando.
Rellene las instrucciones adecuadamente. La línea más importante es la que pide al
Common Name (eg server FQDN or YOUR name)
. Es necesario introducir el nombre de dominio que desea asociar con el servidor. Puede introducir la dirección IP pública en su lugar si usted no tiene un nombre de dominio. La totalidad de las indicaciones se verá algo como esto:
Nombre País (código de 2 letras) [AU]: VE Estado o Provincia Nombre (nombre completo) [Algunos-Estado]: Merida
Localidad Nombre (por ejemplo, de la ciudad) []: Merida Nombre de la organización (por ejemplo, la empresa) [Internet Widgits Pty Ltd]: ULA Organizational Unit Name (por ejemplo, la sección) []: Facultad de Ingenieria Nombre común (por ejemplo, nombre de dominio completo del servidor o como tu nombre) []: your_domain.com Dirección de correo electrónico []: admin@your_domain.com
Tanto de los archivos que ha creado se colocará en el
/etc/nginx/ssl
directorio. Paso dos - Configurar Nginx para utilizar SSL
Hemos creado nuestros archivos de claves y certificados bajo el directorio de configuración de Nginx. Ahora sólo tenemos que modificar nuestra configuración de Nginx para aprovecharse de ellos ajustando nuestros archivos de bloques de servidor. Usted puede aprender más sobre los bloques de servidor Nginx en este artículo.Nginx versiones 0.7.14 y superiores (Ubuntu 14.04 incluye la versión 1.4.6) puede habilitar SSL en el mismo bloque de servidor como el tráfico HTTP regular. Esto nos permite configurar el acceso al mismo sitio de una manera mucho más sucinta.
Su bloque de servidor puede ser algo como esto:
server { listen 80 default_server; # listen [::]: 80 default_server ipv6only = en; root / usr / share / nginx / html; index.htm index.html index; name_server your_domain.com; location / { try_files $ uri uri $ / = 404; } }
Lo único que tendríamos que hacer para conseguir trabajo SSL en este
mismo bloque de servidor, al tiempo que permite conexiones HTTP
regulares, es añadir una de estas líneas:server { listen 80 default_server; # listen [::]: 80 default_server ipv6only = en; listen 443 ssl; root / usr / share / nginx / html; index.htm index.html index; name_server your_domain.com; /etc/nginx/ssl/nginx.crt ssl_certificate; /etc/nginx/ssl/nginx.key ssl_certificate_key; location / { try_files $ uri uri $ / = 404; } }
Cuando haya terminado, guarde y cierre el archivo. Ahora, todo lo que tienes que hacer es reiniciar Nginx para usar la nueva configuración:
sudo service nginx restart
Esto debe recargar la configuración de su sitio, ahora lo que le permite responder a HTTP y HTTPS (SSL).
Paso Tres - Pon a prueba tu programa de instalación
Su sitio debe ahora tener la funcionalidad SSL, pero debe probarlo para asegurarse.En primer lugar, vamos a probar para asegurarse de que todavía podemos acceder al sitio con el uso de HTTP normal. En su navegador web, vaya a nombre de dominio de su servidor o la dirección IP:
http: // server_domain_or_IP
Usted debe ver su página web normal. En mi ejemplo, yo estoy sirviendo a la página por defecto Nginx:
Si usted recibe esta página, entonces su servidor sigue manejando peticiones HTTP correctamente.
Ahora, podemos comprobar si nuestro servidor puede utilizar SSL para comunicarse. Haga esto especificando el
https
en vez del protocolo http
protocolo.
https: // server_domain_or_IP
Usted probablemente recibirá una advertencia en su navegador web que se ve algo como esto:
Con ello se espera. Se le está diciendo que no puede verificar la identidad del servidor al que está intentando conectarse, ya que no está firmado por una autoridad de certificación que el navegador se ha configurado para confiar. Desde que hemos creado un certificado autofirmado, esto tiene mucho sentido.
Haga clic en "Continuar de todas formas", "Continuar", o lo que sea opción similar está disponible. Usted debe ver a su sitio de nuevo:
Su navegador puede mostrar el "https" cruzaron en la barra de direcciones o un roto o tachado de "bloqueo" icono. Si hace clic en el icono de bloqueo, se puede ver un poco más de información acerca de la conexión:
Como puede ver, la cuestión es sólo que el navegador no puede verificar la identidad del servidor, ya que no está firmado por una autoridad de certificación que está configurado para confiar. La sección central muestra que la conexión está encriptada, sin embargo, por lo que hemos logrado ese objetivo.
Conclusión
Ha configurado el servidor Nginx para manejar tanto las peticiones HTTP y SSL. Esto le ayudará a comunicarse con los clientes de forma segura y evitar las partes externas de ser capaz de leer su tráfico.Si usted está planeando sobre el uso de SSL para un sitio web público, es probable que debe adquirir un certificado SSL de una autoridad certificadora de confianza para evitar las advertencias de miedo de que nos llevaron a cada uno de sus visitantes.
Autor: Justin Ellingwood
Tomado de: https://www.digitalocean.com/community/tutorials/how-to-create-an-ssl-certificate-on-nginx-for-ubuntu-14-04
Comentarios
Publicar un comentario