我指的是这个链接 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/