免费的 SSL 证书可以通过阿里云获取,也可以通过以下操作安装。这里只记录使用 certbot 在 CentOS 中给 nginx 配置 https:
先去 Certbot 官网 https://certbot.eff.org/,选择 nginx ,再选择 CentOS/RHEL 7,意思是在什么系统上使用什么 HTTP 服务器

¶1、查看服务器实例
1  | sudo cat /sys/devices/virtual/dmi/id/product_uuid  | 
如果没有 dmi 文件夹,就进行安装:
1  | sudo yum -y install dmidecode  | 
如果 UUID 是ec2开头,则需要运行以下两行指令:
1  | sudo yum -y install yum-utils  | 
¶2、安装 Certbot
1  | sudo yum install -y certbot python2-certbot-nginx  | 
¶3、获取并安装 SSL 证书
1  | sudo certbot --nginx  | 
报错如上,参考资料:Certbot :ImportError: No module named 'requests.packages.urllib3,执行以下指令:
1  | sudo pip install --upgrade --force-reinstall 'requests==2.6.0' urllib3  | 
提示输入以下指令升级pip,可以不搭理。
1  | sudo pip install --upgrade pip  | 
接下来重新运行sudo certbot --nginx:
1  | sudo certbot --nginx  | 
按照提示依次输入:
  - 输入邮箱,用于接收紧急续订和安全通知邮件
  - 输入 A,阅读并同意条款
  - 输入 N,邮箱接收相关推广邮件,不需要
  - 输入数字,选择部署的域名,多个域名用,隔开
  - 输入数字,选择是否将 http 重定向到 https。1、无需重定向,2、重定向


¶4、确定 Certbot 正常运行
在浏览器输入域名,在 URL 栏确认是否有 🔒 图标
¶5、设置自动续订
1  | echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew" | sudo tee -a /etc/crontab > /dev/null  | 
可查看续订设置:
1  | cat /etc/crontab  |