首先安装 Certbot :
sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:certbot/certbot
sudo apt update
sudo apt install python-certbot-nginx
安装好之后,只需要运行一行代码:
sudo certbot --nginx
剩下的一切会自动完成。Certbot 会自动帮你注册账户,检测 Nginx 配置文件中的域名,询问你为哪些域名生成证书,是否将 Http 重定向到 Https 等等,最后帮你自动修改 Nginx 配置并重启,这时你的网站已经变成了 Https。另外由于证书只有三个月的有限期,你还可以运行 sudo certbot renew --dry-run,Certbot 会帮你启动一个定时任务,在证书过期时自动更新。
还有,如果你只想生成证书怎么办?比如七牛云加速域名的证书,Nginx 配置中并没有此域名。同样一行代码搞定:
certbot certonly --cert-name example.com
Certbot 会启动一个临时服务器来完成验证(会占用80端口或443端口,因此需要暂时关闭 Web 服务器),然后 Certbot 会把证书以文件的形式保存,包括完整的证书链文件和私钥文件。
你用的是其他操作系统和 Web 服务器怎么办?官方有详细的文档,你可以在首页选择你的软件查看对应的文档。
https://lufficc.com/blog/upgrade-to-https-with-certbot
Certbot Instructions | Certbot (eff.org)
https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04