- A+
我先抱怨一下,开始我只是想让偶乃秋辰由https://链接形式访问而已,但是由于我对Linux系统知识的匮乏,期间差点把全部数据丢失,并且经历了换系统、换虚拟主机面板、网站搬家等情况,最终在每天只睡4个小时的情况下折腾了整整10天,终于实现了目标。虽然这次经历要以“悲惨”来形容,但也令我学到了很多东西。
介绍一下秋辰生产环境,我使用的Linux系统是CentOS7,配置军哥的LNMP,我搜索了一下网络上并没有CentOS7安装Let’s Encrypt的教程,因为CentOS7相较CentOS6有很大的区别,所以安装方法也就不一样,写下这篇教程,即帮助别人又给自己备忘。
在做任何操作之前,先备份自己的数据库和网站文件,虽然正常情况下不会丢失文件,但是小心驶得万年船,以防万一吧。
1、我们需要把域名的DNS临时更换到国外的域名商,国内DNS的肯定是不行的,包括DNSPod国际版也不行。可以使用NameCheap、LinodeDNS等免费的DNS域名商(更换到国外DNS后别忘了做A记录),虽然有些麻烦但是只需Let's Encrypt申请成功后即可换回以前的,续期也不影响。(现在不用了,使用DNSPod国内版就可以。)
2、打开/usr/local/nginx/conf/vhost/你的绑定网站.conf(比如我的是onqc.com.conf),然后把以下这段代码删掉(找不到就跳过这一步):
- location ~ /\.
- {
- deny all;
- }
删掉以后保存并上传覆盖原文件并执行命令:
- service nginx restart
3、安装epel、certbot等必要组件:(这期间会提示你输入几个“y”并回车,直到安装完成。)
- yum install epel-release
- yum install certbot
4、开始安装命令:
- certbot certonly --email chilsion@qq.com(更换成你自己的邮箱) --agree-tos --webroot -w /home/wwwroot/onqc.com -d onqc.com(如果就需要绑定一个网址把后面的删掉即可) -d www.onqc.com(改成自己的网站)
6.、当显示下面这张图里的内容,就说明完成了,并且备份/etc/letsencrypt/live/文件夹的内容,你的Let's Encrypt证书文件就在这个文件夹内。
7、Let’s Encrypt证书虽然只有90天的期限,但是可以无限续期;我们可以通过设置Crontab自动续期,避免自己手动续期的麻烦,运行以下命令:
- yum install vixie-cron crontabs //安装Crontab
- systemctl enable crond.service //设为开机自启动
- systemctl start crond.service //启动
然后我们添加crontab任务:
- crontab -e
然后按键盘上的“i”键,在空白行输入:
- 0 3 */20 * * certbot renew --dry-run && service nginx reload
再按ESC键,再输入“:wq” (输入“”以内,不包括“”,如果有输错的,需要按着Ctrl+Backspace删除)回车即可。
以下命令可以查询crontab任务列表:
- crontab -l
好了,大功告成了!
PS:如果偶尔原意手动续期也可以直接输入:
- certbot renew --dry-run && service nginx reload
如果需要把以前的http网址301重定向到新的https网址请阅读《“https://”LNMP的301重定向设置》