Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

801
Views
No se puede habilitar ssl por docker-letsencrypt-nginx-proxy-companion

Quiero habilitar ssl mediante docker-letsencrypt-nginx-proxy-companion . Este es el docker-compose.yml

 version: "3.3" services: nginx-proxy: image: jwilder/nginx-proxy container_name: nginx-proxy ports: - "80:80" - "443:443" volumes: - certs:/etc/nginx/certs:ro - vhostd:/etc/nginx/vhost.d - html:/usr/share/nginx/html - /var/run/docker.sock:/tmp/docker.sock:ro restart: always db: # --- wordpress: # --- environment: # --- VIRTUAL_HOST: blog.ironsand.net LETSENCRYPT_HOST: blog.ironsand.net LETSENCRYPT_EMAIL: mymail@example.com restart: always letsencrypt-nginx-proxy-companion: container_name: letsencrypt image: jrcs/letsencrypt-nginx-proxy-companion volumes: - certs:/etc/nginx/certs - vhostd:/etc/nginx/vhost.d - html:/usr/share/nginx/html - /var/run/docker.sock:/var/run/docker.sock:ro environment: NGINX_PROXY_CONTAINER: nginx-proxy restart: always networks: default: external: name: nginx-proxy volumes: certs: vhostd: html:

docker logs letsencrypt muestra que ya existe un certificado.

 /etc/nginx/certs/blog.ironsand.net /app Creating/renewal blog.ironsand.net certificates... (blog.ironsand.net) 2020-04-09 00:03:23,711:INFO:simp_le:1581: Certificates already exist and renewal is not necessary, exiting with status code 1. /app

Pero el desafío ACME no devuelve nada. (¿falla?)

 $ docker exec letsencrypt bash -c 'echo "Hello world!" > /usr/share/nginx/html/.well-known/acme-challenge/hello-world' $

El puerto 443 está escuchando, pero el puerto está cerrado desde el exterior.

 // in remote server $ sudo lsof -i:443 [sudo] password for ubuntu: COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME docker-pr 10910 root 4u IPv6 633694 0t0 TCP *:https (LISTEN) // from local pc ❯ nmap -p 443 blog.ironsand.net Starting Nmap 7.80 ( https://nmap.org ) at 2020-04-09 09:44 JST Nmap scan report for blog.ironsand.net (153.127.40.107) Host is up (0.035s latency). rDNS record for 153.127.40.107: ik1-418-41103.vs.sakura.ne.jp PORT STATE SERVICE 443/tcp closed https Nmap done: 1 IP address (1 host up) scanned in 0.21 seconds

Estoy usando filtrado de paquetes, pero está abierto para 80 y 443, y no estoy usando firewall. ¿Cómo puedo investigar más donde existe el problema?

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

No puedo resolver su problema directamente, pero puedo escribir algunas sugerencias, por lo que puedo resolver su problema.

  1. Tu comando no devuelve nada.
    bash -c 'echo "Hello world!" > /usr/share/nginx/html/.well-known/acme-challenge/hello-world'
    Este comando solo escribe "¡Hola mundo!" al lugar y normalmente no devuelven nada. Consulte https://www.gnu.org/savannah-checkouts/gnu/bash/manual/bash.html#Redirections

  2. Mire dentro de la carpeta de certificados.
    Eche un vistazo a la carpeta de certificados y tal vez límpielos. Verifique que la carpeta se haya montado correctamente en su contenedor nginx. Tome un bash en el contenedor y verifique la carpeta ssl.

  3. Comprueba que el cortafuegos no se rompe nada
    ¿Desde afuera no hay conexión posible? ¿Qué es del interior? Inicie sesión en su docker-host y verifique la conexión desde allí (tal vez openssl y curl sean sus amigos),

  4. No use SSL dentro del contenedor.
    A menudo veo problemas cuando alguien intenta usar ssl con imágenes ACME y "volúmenes compartidos y de montaje salvaje". Pero nunca escuché sobre problemas, cuando las mismas personas usan un proxy inverso normal. Explico una buena configuración a continuación.

Así que simplemente elimine todo el código letscrypt de su contenedor y cierre el puerto 443 de su contenedor.
(Además, puede cambiar a una imagen no raíz y exponer solo los puertos que no necesitan privilegios de raíz). Luego, instale nginx en su host y configure un proxy inverso (algo así como proxy_pass 127.0.0.1:8080 ). Y ahora instale certbot e inícielo. Te ayuda y es sencillo.
El certbot también puede mantener sus certificados.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!