meta data de esta página
  •  

¡Esta es una revisión vieja del documento!


Nginx con Certificados

Paso 1

Creamos un contenedor con ubuntu

docker run -it ubuntu:latest

Paso 2

Nos conecta a la terminal del contenedor y ejecutamos

  1. Actualizamos el contenedor de ubuntu
    apt-get update
  2. Intalamos los paquetes que vamos a necesitar
    apt-get install -y certbot nginx  nano

Paso 3

Pedimos un certificado a “Let's Encrypt” .

Previamente tenemos que hacer que el nombre del dominio (DNS) apunte a la ip del servidor

certbot certonly --standalone -d midominio.es

También podemos automatizar las peticiones de certificados sin que nos pida nada.

certbot certonly \
    -d midominio.es \
    --noninteractive \
    --standalone \
    --agree-tos \
    --register-unsafely-without-email
<note>Si usamos la opción –standalone previamente hay que asegurarse de que el servicio de nginx está parado ya que este método levanta un servidor web temporal y si ya tenemos nginx ejecutandose no va a funcionar. Para para el servicio de ngnix
service nginx stop

Paso 4

Si tenemos el servidor nginx arrancado el propio certbot nos lo puede configurar . Si prefieres hacerlo manualmente debes de editar el fichero etc/nginx/conf.d/default.conf y añadir/crear lo siguiente

# Redirecciona el puerto 80 a https
server {
        listen 80 default_server;
        client_max_body_size 500M;
        return 301 https://midominio.es$request_uri;
        }
# Le indicamos donde están los certificados
server {
        ssl_stapling off;
        ssl_stapling_verify off;
        listen 443 ssl;
        client_max_body_size 1500M;
        server_name midominio.es;
        ssl_certificate     /etc/letsencrypt/live/registry.midominio.es/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/registry.midominio.es/privkey.pem;
        ssl_protocols       TLSv1 TLSv1.1 TLSv1.2;
        ssl_ciphers         HIGH:!aNULL:!MD5;
  

Renovación del certificado

Manualmente

Para renovar el certificado manualmente

certbot renew

Automáticamente

Con un script que se ejecute el comando diáramente

Referencias