继续向 HTTPS 迈进

这个站点的访问是开启了强制 HTTPS 连接的,不过另一个文档站则没有,因为之前一直没有尝试过如何在 nginx 反代处加入对后端服务的 HTTPS 支持。

查了一下资料,其实比较简单。首先当然是在 nginx 的反代配置中,像正常的站点一般加入该有的内容,主要就是 chained crt 和 key 两个文件。如果跟我一样,在使用免费的 let’s encrypt 证书,这两个文件是在申请过程中自动生成的。

生成过程中有一个地方需要特殊处理,那就是对 ACME Challenge 的响应。因为验证是要请求站点下的 /.well-known/acme-challenge,而后端被代理的服务通常都不会处理这个,那就也必须把这个处理放到 nginx 配置中来。解决方案是把此路径配置到 80 侦听的 server 块中,如下:

当然了,其中的 root 要根据你的具体情况自己改成合适的路径。

在 443 侦听的 server 块中,则要在 proxy_pass 前确保请求头进行了妥善的设置(尤其是 scheme):

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注