Lee
Photo by Jerry Zhang
Lee
Lee
Published at Dec 30, 2018 · 2 mins to read

如何在 NGINX 服务器中安装 SSL 证书

Contents

安装 SSL 证书

这里将使用 Let's Encrypt 的客户端 Certbot 来自动化获取、部署和更新安全证书。

Certbot
Certbot

这里以 NGINXCentOS 为例(选择符合自己的选项),登录服务器获取 Certbot

$ wget https://dl.eff.org/certbot-auto
$ chmod a+x certbot-auto

至此 Certbot 已经安装好了,Certbot 有一个 NGINX 插件,可以自动把 SSL 证书信息自动配置到 NGINX 的配置中去:

$ sudo ./path/to/certbot-auto --nginx

当执行这个命令的时候,Certbot 会先让你输入一些信息比如邮箱、同意协议、访问 HTTP 时是否跳转 HTTPS 等等,同意之后就会自动检测 nginx.conf 下面的配置,并把所有站点配置都列出来并让你选择哪个域名开启 HTTPS(输入列表编号,多个用空格分开):

Configure
Configure

然后到我们的 NGINX 配置中查看配置是否更新:

Configure
Configure

会发现底部多了一些标有 # managed by Certbot 的配置信息,表明 SSL 证书已经配置好了,重启一下 NGINX 就可以访问 HTTPS 协议的域名了,基本所有内容 Certbot 都自动完成了,非常简单,此时已经可以打开 HTTPS 协议的域名了:

Configure
Configure

不过 Let's Encrypt 默认有效期为 90 天,所以需要长期使用的话,就要及时更新证书,不过不用担心,Certbot 提供了非常简单的命令 renew 来更新证书,并且还会提示你证书几月几号会过期(这里是 2019-03-30):

$ sudo /path/to/certbot-auto renew
Configure
Configure

既然是长期使用,所以当然是发布一个定时任务,vim /etc/crontab

Configure
Configure

上面任务表示每个月的 1 号会 renew 一次,renew 后的 5 分钟会重启一次 NGINX 服务。

总结

至此,就实现了 HTTPHTTPS 的升级,且自动更新 SSL 证书以免过期。 Emmmmm... 没了