https升级教程
升级前准备
上一章详细讲解了https的原理之后,本章节将以本博客为对象,实践https升级。
升级准备工作
- CA 选择: Let’s Encrypt
- 安装工具选择:certbot
- 实践对象:本博客: www.afreecoder.cn
- 博客托管的vps配置:
- OS:CentOs 6, x86_64
- RAM: 0.5G
- 确保有ssh权限,即能通过ssh远程访问你的web host
Let’s Encrypt是电子前哨基金会EFF为了推广https协议,提供的免费的、自动化的和开放的CA(Certificate Authority)。Let’s Encrypt的一个贡献是ACME协议,ACME协议旨在确保域名验证、发布和管理方法是完全自动化、一致、符合合规性和安全的。
支持ACME协议的工具有很多(https://letsencrypt.org/docs/client-options/),本文选择的推荐的[certbot](https://certbot.eff.org/)。
升级教程
首先,进入certbot网站,选择对应的web服务器软件(nginx,apache等)和操作系统版本(CentOs 6),网站会给出对应的操作指令
1. 获取cerbot执行脚本1
wget https://dl.eff.org/certbot-auto
certbot-auto
实际上是一个shell执行脚本
2. 放到习惯的路径下1
sudo mv certbot-auto /usr/local/bin/certbot-auto
3. 修改执行脚本的所有者1
sudo chown root /usr/local/bin/certbot-auto
由于certbot需要验证你就是改域名的持有者,所以3、4两步都需要在root权限下进行
4. 修改执行脚本的权限sudo chmod 0755 /usr/local/bin/certbot-auto
5. 自动获取证书,同时修改nginx配置文件1
sudo /usr/local/bin/certbot --nginx --nginx-server-root=/usr/local/nginx/conf
这里有个坑,网站给出的命令是 sudo /usr/local/bin/certbot --nginx
,这条命令默认ngxin安装在/etc/nginx,所以有可能会报错:1
2nginx: [emerg] open() "/etc/nginx/nginx.conf" failed (2: No such file or directory)
nginx: configuration file /etc/nginx/nginx.conf test failed
所以需要用 --nginx-server-root
指定nginx.conf的路径
接下来的操作,按照提示操作即可。
6、添加定时任务
Let’s Encrypt证书的有效期是90天,90天之后就需要重新更新证书,因此需要设置一个定时任务自动更新证书1
echo "0 0,12 * * * root python -c 'import random; import time; time.sleep(random.random() * 3600)' && /usr/local/bin/certbot-auto renew" | sudo tee -a /etc/crontab > /dev/null
上面这行命令是网站提供的,意思是每天12点和0点自动更新证书。至于为什么需要time.sleep(random.random() * 3600),猜测是为了让大家错开时间,降低证书请求的压力
相关配置文件
新的配置文件目录, 同之前的nginx.conf目录1
/usr/local/nginx/conf/vhost/
证书目录1
/etc/letsencrypt/
参考文章
Linux下使用acme.sh申请和管理Let’s Encrypt证书
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!