Ssl letsencrypt

De MediaWiki - iCluster
Saltar a: navegación, buscar

Let's Encrypt

Let's Encrypt es una autoridad de certificación abierta, automatizada y gratuita.

Puedes obtener mas información en https://letsencrypt.org/

Obtención de certificados usando Docker

Para la obtención automática de certificados SSL para los servicios de iCluster usamos la imagen linuxserver/letsencrypt, repo: https://hub.docker.com/r/linuxserver/letsencrypt/

Servidor Municipalidades (Aplicaciones)

Ejecutar en la carpeta root y como súper usuario, además considerar todos los dominios/subdominios presentes en la máquina

docker container run --cap-add=NET_ADMIN   -v "$PWD"/certificados:/config   -e PGID=0 -e PUID=0    -e EMAIL=contacto@icluster.cl   -e URL=icluster.cl   -e SUBDOMAINS=bpm,bigdata,bigdata-bpm,middleware,admin,munisoft,ciudadanos,soporte,wiki,laflorida   -e VALIDATION=http -p 80:80  -p 443:443  -e TZ=America/Santiago -e ONLY_SUBDOMAINS="true" linuxserver/letsencrypt:140

Servidor iCluster (Website)

Ejecutar en la carpeta root y como súper usuario, además considerar todos los dominios/subdominios presentes en la máquina

docker container run --cap-add=NET_ADMIN   -v "$PWD"/certificados:/config   -e PGID=0 -e PUID=0  -e EMAIL=contacto@icluster.cl -e URL=icluster.cl   -e SUBDOMAINS=www   -e VALIDATION=http -p 80:80  -p 443:443  -e TZ=America/Santiago  linuxserver/letsencrypt:140
Consideraciones importantes
Nótese que en la máquina de aplicaciones, no existe un dominio, solo subdominios, por cuanto la opción ONLY_SUBDOMAINS está seteada en true
Docker img, esta imagen docker requiere el uso del puerto 80 y 443, para la validación de los certificados correspondientes, por cuanto esos puertos deben estár disponibles.


Instalación de certificado en servidor NGINX (docker img nginx:1.13)

archivos de configuración de vhost en /etc/nginx/conf.d/

  • Bloque de redireccion http to https + certificados ssl
server
{
 listen 80;
 server_name example.com;
 return 301 https://$server_name$request_uri;
}
server {
 server_name example.com;
 listen 443 ssl;
 ssl_certificate PATH_TO/fullchain.pem;
 ssl_certificate_key PATH_TO/privkey.pem;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 ssl_prefer_server_ciphers on;
 ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH';
 location / {
  ...
 }
}