¿ Qué es un serticado ssl?
Сертификат ssl es un tipo de serticado digital que que proporciona atenticación para un sitio web y habilita una conexión encrictada. Estos Sermados Comunican Al Cliente Que el Host del servicio web demostró La Propiedad del Dominio a la Autoridad de sertiactación en El Momento de la emisión del sertivado.
SSL (Secure Socket Layer) es un protocolo de seguridad que encricta el envío y recepción de información entre el servidor y el cliente. Este Crea una capa de conexión segura entre El Navegador Y El Servidor Del Sitio Web Al Que el usuario se conecta. Cualquier Información Que Pase A Través de esta capa está encctada y es descifrada cuando llega a su destino.
Давайте Зашифровать
Давайте зашифруем es una autoridad de sermatación (También conocidas como ac o Ca por sus siglas en Inglés) gratuita, Automatizada, y abierta, Que Essave Para El Beneficio del Público. Es un servicio provisto por el Исследовательская группа по интернет -безопасности o ISRG Анкет
Сертификат
Cerbot ES UN CLIENTE Расширенные CON TODAS LAS Funciones Para Let’s Encrypt CA, O Cualquier Otra Autoridad de Serti -Cemación Que Se Comunique A Través del Protocolo Acme , Capaz de Automatizar las tareas de obtener serfitydos y configurar servidores web para usarlos.
Nginx
Nginx es un servidor web/proxy inverso ligero de alto rendimiento y un proxy para protocolos de correo электронико.
Пре-реквизитос
- Доминио Регистрадор
- Docker Compose Instalado
Составьте ES una herramienta para definir yejecutar aplicaciones docker de varios interenedores. Se usa un archivo yaml para configurar los servicios de tu aplicación y luego, con un solo comando, crea e inicia todos los servicios desde tu configuración.
Пасос
1. Lo primero que aremos es Crear Los Directorios Donde certbot alojará la configuración de los sermados y donde pondremos la configuración de nuestro servidor nginx:
data/certbot/www/.well-known
Es Muy Watere Que Esté creado el Directorio. Well-известный ya que en El Mismo se Guardará el Challenge Que Que Давайте зашифруем утилизацию para recorborar que tenemos control sobre el dominio. Es útil conocer los diferentes tipos de проблемы Que Essave Para Elegir El Más Adecuado Según El Caso, Es Decir, El Tipo de Validación Que Let’s Encrypt utiliza para verificar el control sobre el dominio.
2. Луго, Crearemos El Archivo de Configuración de nginx dentro del Deliretio Recién Creado, Con El Siguiente Contenido:
server { listen 80; server_name NOMBRE_DEL_HOST; location / { return 301 https:// NOMBRE_DEL_HOST; } location /.well-known/acme-challenge/ { root /var/www/certbot; } } server { listen 443 ssl; server_name NOMBRE_DEL_HOST; location / { proxy_pass http://NOMBRE_DEL_HOST; } ssl_certificate /etc/letsencrypt/live/NOMBRE_DEL_HOST/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/NOMBRE_DEL_HOST/privkey.pem; include /etc/letsencrypt/options-ssl-nginx.conf; ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; }
El Archivo de Configuración Deberá Estar En Dicho Directorio: data/nginx/web.conf
3. Una Vez Listo, Pasaremos A Crear El Compose que vamos a utilizar:
version: "3" services: nginx: image: nginx:1.15-alpine ports: - "80:80" - "443:443" volumes: - ./data/nginx:/etc/nginx/conf.d - ./data/certbot/conf:/etc/letsencrypt - ./data/certbot/www:/var/www/certbot command: "/bin/sh -c 'while :; do sleep 6h & wait $${!}; nginx -s reload; done & nginx -g \"daemon off;\"'" certbot: image: certbot/certbot volumes: - ./data/certbot/conf:/etc/letsencrypt - ./data/certbot/www:/var/www/certbot entrypoint: "/bin/sh -c 'trap exit TERM; while :; do certbot renew; sleep 12h & wait $${!}; done;'"
Creado el Compose, No Lo Ejecutaremos, Porque Fallará La Creación del Nginx Debido a Que no se incuentra creado el setradado que declaramos andhermente en ar archivo de configuración de nginx.
Vamos a Explicar Un Poco lo que hicimos en compose: cruzamos datos entre certbot y nginx mediante los directorios creados aydermente. Esto se Debe a Que necesitamos que el engendor nginx pueda acceder a los sertiados y el Задача CREADOS POR El Compenedor de certbot.
En El Compenedor de certbot agregamos un точка входа El Cual Verifica Cada 12 Horas Si Se Puede Renovar El Setterado.
POR SU PARTE, EN EL COMPENDOR DE NGINX AGREGAMOS UN COMMAND EL CUALMIT INICIAR NGINX EN ПРИМЕР ПЛАНО Y РЕКАРГА SU CONFIGNURACION Y SERTICADOS CADE 6 HORAS EN SEGUNDO PLANO, ASEGURANDO QUE SIEMPRE TENGA LOS NUEVOS SETRADOS SE GENEREN.
4. Финал, Дебемос Crear El Siguiente Script Cambiando Los Valores de домены y Эл. адрес :
EL Script Debe Estar El Mismo Deversectio Donde Se Encuentra El Docker-Compose YE EL Data Data Que Creamos Oversemente. Vamos a Darle permiso de ejecución al script y luego ejecutarlo:
chmod +x init-letsencrypt.sh sudo ./init-letsencrypt.sh
Como Dijimos Aderthmente, Si Queremos utilizar Эль Командо Docker-Compose Up
Нет Funcionará porque no se incuentran creados los setrados que seteamos en la configuración de nginx. Ahí es Donde entra en juego el script. Скрипт Este Lo Que Es Crear Sertiados манекены Utilizando el Compenedor de certbot, Para Poder inicializar el Compenedor de nginx sin werrores. Luego de que el intreendor esté inicializado, elmina los sertiados манекены , Le Pide A Let’s Encrypt Сертификат para nuestro dominio y reinicia la configuración del compendor de nginx para Recargar los sertiados válidos. De Este Modo, no va a ser necesario utilizar dicho comando.
Si al ejecutar el script falla la creación de los mertaados, es MUY WATTERE Que Lean y Resuelvan el encessurviente antes de volver a ejecutarlo, ya que let’s encrypt bloqueará el dominio si hacen más de 5 intentos fallidos.
Por último, cabe aclarar que en este artículo tomamos información de varias fuentes, recopilando aquellas más opplas para que ese paso a paso resulte más fácil y práctico. Espero Que Les Sea útil y Cualquier Consulta Нет Duden en dejarla en los comentarios.
Para más info sobre este tema recomendamos nuestra nota en medium:
Сертификат Demonio Con Let’s Encrypt, Nginx Y Docker Compose | Матиас Кинтана | Euda | Середина
Matias Quintana ・ 3 сентября 2020 г. ・ Среда
¡Mugos éxitos!
Оригинал: «https://dev.to/euda/certificacion-de-dominio-con-let-s-encrypt-nginx-y-docker-compose-16p4»