自定义端口(Nginx 或 apache)上的 Certbot (LetsEncrypt)

T.T*_*dua 4 ssl nginx lets-encrypt certbot

我发现了很多类似的问题,人们询问如何在不同端口(80/443 除外)上设置 SSL,即1234端口。然而,所有答案都是类似use redirectionproxying requestsdns-validation (instead of http)使用替代方法然而,你在 StackExchange 中找不到任何一个答案 ,我的意思是对于新手来说一步一步,如何做到这一点。

但是,请注意,重定向不是解决方案,因为在 80/443 上,一个人可能有一个常规网站,但在 1234 端口上有一个完全不同的应用程序。那么,仅仅从1234到 的“重定向”80就会弄乱网站,对吗?

Esa*_*nen 5

让 Nginx 在端口 80 上仅用于HTTP-01 质询,然后在另一个 Web 应用程序甚至另一个服务器软件上使用使用它创建的证书是完全可以的。它不需要执行任何反向代理即可服务http://example.com/.well-known/acme-challenge/,例如

server {
   listen 80;
   server_name example.com;

   location /.well-known/acme-challenge/ {
       alias /var/www/letsencrypt/.well-known/acme-challenge/;
   }
   location / {
       return 404;
   }
}
Run Code Online (Sandbox Code Playgroud)

此外,您根本不需要侦听端口 80 的 Web 服务器,因为 Certbot 可以使用其自己的内置 Web 服务器来应对挑战:

sudo certbot certonly --standalone --preferred-challenges http -d example.com
Run Code Online (Sandbox Code Playgroud)