ssl - Letsencrypt + Docker + Nginx

标签 ssl nginx docker

我指的是这个链接 https://miki725.github.io/docker/crypto/2017/01/29/docker+nginx+letsencrypt.html 在与 docker 一起运行的我的应用程序上启用 SSL。所以这里的问题是当我运行以下命令时

  docker run -it --rm \
  -v certs:/etc/letsencrypt \
  -v certs-data:/data/letsencrypt \
  deliverous/certbot \
  certonly \
  --webroot --webroot-path=/data/letsencrypt \
  -d api.mydomain.com

它抛出一个错误:

Failed authorization procedure. api.mydomain.com (http-01): urn:acme:error:unauthorized :: The client lacks sufficient authorization :: Invalid response from http://api.mydomain.com/.well-known/acme-challenge/OCy4HSmhDwb2dtBEjZ9vP3HgjVXDPeghSAdqMFOFqMw:

所以任何人都可以帮助我,如果我遗漏了什么或做错了什么,请告诉我。

最佳答案

那篇文章和您的设置中似乎缺少的是主机名 api.mydomain.com 需要有一个公共(public) DNS 记录指向机器的 IP 地址Nginx 容器正在运行。

Let's Encrypt 进程正在尝试访问文件 api.mydomain.com/.well-known/acme-challenge/OCy4HSmhDwb2dtBEjZ9vP3HgjVXDPeghSAdqMFOFqMw。此文件由 certbot 放在那里。如果地址 api.mydomain.com 未解析为您运行 certbot 的机器地址,则该过程将失败。

您还需要打开端口 80 和 443 才能正常工作。

根据可用信息,这是我关于您可以从哪里着手解决问题的最佳建议。

关于ssl - Letsencrypt + Docker + Nginx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44020498/

相关文章:

java - Tomcat:使用强密码的 TLSv1.2 不起作用

sockets - 如何使用 Nginx/Openresty 将 tcp 流复用到多个 websocket 客户端?

php - 如何获取 client_max_body_size (nginx - php-fpm) 作为 PHP 中的值?

Docker:8080 没有从 nginx 容器中得到响应

discord.py : ssl. SSLCertVerificationError : certificate verify failed: unable to get local issuer certificate (_ssl. c:1056 上的 Python SSL 错误

java SSLHandshakeException 虽然证书受信任的系统范围

web-services - Tomcat 是否支持 TLS v1.2?

nginx - 运行负载测试 jmeter 时 504 网关超时

hadoop - 用 yarn 进行星火聚类

docker - 在docker内部配置cassandra.yaml以进行密码验证