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
- Actualizamos el contenedor de ubuntu
apt-get update
- Intalamos los paquetes que vamos a necesitar
apt-get install -y certbot nginx nano
Paso 3
Pedimos un certificado a “Let's Encrypt” .
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;
Aparte de lo anterior sería recomendable añadir las siguientes opciones de seguridad al fichero de configuración de nginx # Deshabilitar las cabeceras inválidas y la versión de nginx
ignore_invalid_headers on; server_tokens off; #Evitar ataques de buffer overflow client_body_buffer_size 100K; client_header_buffer_size 1k; client_max_body_size 100k; large_client_header_buffers 2 1k; #Controlar Time-outs client_body_timeout 15; client_header_timeout 15; send_timeout 15; keepalive_timeout 5 5; #OCSP Stapling ssl_stapling on; ssl_stapling_verify on; resolver 1.1.1.1 208.67.222.222 208.67.220.220 valid=60s; resolver_timeout 2s;
Renovación del certificado
Manualmente
Para renovar el certificado manualmente
certbot renew
Automáticamente
Con un script que ejecute el comando diáramente