使用 Let’s Encrypt 证书和搭配 Nginx 实现网站 https 化。
一、SSL证书获取
由于 Let’s Encrypy 申请的 SSL 证书只有三个月的有效期,为了实现自动续期,使用 acme.sh 脚本来获取且自动续期。
使用过程中如有问题参考 acme官方文档 ,文档有中文说明,下面记录我自己的操作。
1. 下载脚本并安装
下载脚本并安装,将邮箱设置成自己的。
wget -O - https://raw.githubusercontent.com/acmesh-official/acme.sh/master/acme.sh | sh -s -- --install-online -m itwxe@qq.com
刷新用户变量,任意目录可以使用 acme.sh。
source /root/.bashrc
这里除了安装了脚本,同时还自动配置了个定时任务,这个定时任务每天会检查你的证书是否需要自动续期,可以使用 crontab -l
查看。
2. 生成证书
为了自动验证并更新证书,使用 DNS 验证需要往文件添加自己的 DNS 授权码,个人认为不太安全,这里使用了 http 方式验证域名所有权,此处结合了 nginx。
nginx 配置你想要申请域名的路径,我这里统一使用 /itwxe/blogSite/public
来验证,如果还有不知道 nginx 怎么安装的可以查看 Linux(CentOS7)下Nginx安装。
修改 nginx.conf 文件,nginx 配置如下,修改后记得验证 nginx -t
是否正确,nginx -s reload
重启 nginx。
server {
listen 80;
server_name www.itwxe.com img.itwxe.com;
location / {
root /itwxe/blogSite/public;
}
}
执行命令申请证书。
# www.itwxe.com SSL申请
acme.sh --issue -d www.itwxe.com -w /itwxe/blogSite/public
# img.itwxe.com SSL申请
acme.sh --issue -d img.itwxe.com -w /itwxe/blogSite/public
申请过程非常快的,打印的日志也很简单,成功了就会提示 sucess,有错误也会提示 error。
生成成功之后的文件在 /root/.acme.sh/
目录下,以域名为文件夹,SSL 证书就在这个目录下。