在Ubuntu 18.04上 Nginx下配置Let’s Encrypt免费证书
let's Encrypt是一个证书颁发机构(CA ),提供一个简单的方法来获取和安装免费的TLS SSL证书,从而在web服务器上启用加密的HTTPS
安装Certbot
首先,添加存储库:
1 |
sudo add-apt-repository ppa:certbot/certbot |
安装Certbot软件包for Nginx
1 |
sudo apt install python-certbot-nginx |
Nginx站点配置
确认要做加密证书站点已经在nginx配置好。Certbot需要能够在Nginx配置中找到正确的server
块,以便能够自动配置SSL ,它通过寻找与要求证书的域匹配的server_name
指令来执行此操作。
检查防火墙
如果开启防火墙,需要把https加入防火墙允许https可用。
获得SSL证书
Certbot提供了多种通过插件获取SSL证书的方法,Nginx插件将负责重构Nginx并在必要时重新加载配置,要使用此插件,请键入以下内容:
1 |
sudo certbot --nginx -d example.com |
把example.com换成自己域名。一个站点多个域名在命令后加 -d 域名就可以
它使用--nginx
插件运行certbot
,使用-d
指定我们希望证书对它有效的名称。
如果这是第一次运行certbot
,你将被提示输入电子邮件地址,并且同意服务条款,
如果成功,certbot
将询问你如何配置你的HTTPS设置。
最后返回 Congratulations! You have successfully enabled https://example.com,说明已经安装成功,可以使用https协议访问一下站点。可以正常访问就可以了。到这里就配置完成。
Certbot自动续订检查
let's Encrypt's的证书有效期仅九十天,这是为了鼓励用户自动化他们的证书更新进程,certbot
包为我们提供了一个更新脚本,该脚本每天运行两次,并且会在过期前的三十天内自动续订证书。查看状态运行下面命令:
1 |
sudo certbot renew --dry-run |
如果没有错误,说明可以正常自动更新。