为nginx配置Let’s Encrypt证书

Let’s Encrypt在某次更新后改为使用certbot签发证书。和以前不同的是,现在签发证书时不需要关闭Web服务,但是Let’s Encrypt需要先验证这个域名属于你本人。其大致流程是Let’s Encrypt客户端在本地的http根目录下生成一个包含着相关信息的临时文件(token),然后Let’s Encrypt的验证服务器通过访问这个临时文件来确认改域名属于你本人并且相关的DNS记录正确。如果你使用Apache,这个过程将会自动完成,但目前为止,Let’s Encrypt并没有官方支持nginx,所以需要手动完成这一步骤。

安装配置Let’s Encrypt

执行./letsencrypt-auto之后,letsencrypt客户端会自动安装并配置相关依赖。

配置webroot验证

Let’s Encrypt的验证文件位于web根目录下的/.well-known/acme-challenge/目录中。

通常服务器的配置是禁止用户访问以点开头的项目的(比如.git/ .htaccess),所以需要修改配置使其被允许访问。

测试配置文件无误后重新启动nginx。

签发证书

假设web根目录为/var/www/

一切无误的话,生成的证书文件位于/etc/letsencrypt/live。4个文件分别为:

  • cert.pem: Your domain’s certificate
  • chain.pem: The Let’s Encrypt chain certificate
  • fullchain.pem: cert.pem and chain.pem combined
  • privkey.pem: Your certificate’s private key

(准确起见不翻译了)

配置nginx

续期

完成后新的证书存放在 /etc/letsencrypt/live/[你的网站url]/,将证书放在相应位置后重启nginx。
Done.

One thought on “为nginx配置Let’s Encrypt证书

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注

如果你是人类,请点击Banana...