我有一台运行 2 个不同的 Web 服务器(Apache 和 Nginx)的服务器。Apache 服务器负责所有指向 Wordpress 站点的流量,而 Nginx 服务器为我的 Python API 和 React Web App 提供服务。
由于与 Apache 的端口冲突,我不得不将 API 设置为在端口 88 上运行,并将 React 应用程序设置为在 90 上运行。我以这种方式对其进行了测试,它工作正常。所有请求都将被转发到 443,所以我认为不安全端口是什么并不重要。
当我最终运行添加证书的命令时:
sudo certbot --nginx -d a.domain.com
这给了我一个错误。经过进一步检查,我发现它试图在端口 80 而不是 88 上打开域。我做了一些研究,找到了--http-01-port
规则并将其设置为 88,但它又给了我同样的错误:
sudo certbot --nginx --http-01-port 88 -d a.domain.com
在尝试了这么多次之后,我担心 certbot 可能会因为怀疑垃圾邮件而很快阻止我几个小时或几天,而我已经没有可能的解决方案了。
以前有没有人处理过这个问题?你是怎么解决这个问题的?
无法指定与默认值 (80/443) 不同的端口。
我建议您使用 acme-dns 验证。我使用它,它工作正常。更多详细信息:https ://www.digitalocean.com/community/tutorials/how-to-acquire-a-let-s-encrypt-certificate-using-dns-validation-with-acme-dns-certbot-on- ubuntu-18-04
同样,acme-dns 对于为具有公共域的 Intranet 颁发 Let's Encrypt 证书非常有用。
certbot certonly --standalone -d myapp.domainexample.com --non-interactive --agree-tos --email [email protected] --http-01-port=9090