[实战]AMH安装Let’s Encrypt

/ 0评 / 0

你还在羡慕别人家的SSL?!!You Can Do It!

一直都没有AMH的教程针对Let's Encrypt ,所以本着劳动者精神,自己动手丰衣足食,研究出了个小方法,分享给大家,当然我知识水平有限希望大神能够优化完美下.

一、首先 你必须已经有了个证书!!

这个证书,无论是免费的收费的自签的乱打的都必须有!(不知道为什么只知道如果没有的话,你不能开启站点https,就是那个AMSSL的配置)

 

 二、你能找到这个文件存放的目录!

一般存放地址是:
/home/wwwroot/环境名称/etc/主标识域名-ssl

*本文所有环境配置如下 环境名称均为com 主标识域名为 blog 本次运行环境为Apache

所以在使用Nginx的时候可能会有所出入请注意自行研究,但是万变不离其宗都一个样,你说是不~
当你准备好后,你就可以开始你的SSL之旅了!
下一层:初次使用Let's Encrypt的准备工作*重要

 

三、当我们完成上面的准备后,就可以为配置Let's Encrypt做准备了.
强烈要求!必须首先查看 安装原理指引 这篇文章,最好能懂点,这样后期少走很多弯路!
你需要做好以下的准备:

1 确保您的网站在http下能够正常访问. 因为Let's Encrypt在配置时会写入网站根目录一个文件的,而且要求能够访问来确认您是网站所有者的身份的.所以一定确保Http能够正常访问!(我就在这里绕了点弯路...)
2 你必须拥有网站所有权(废话)

3 再次确认目录这块你已经摸清楚了!
然后我们就可以开始下一步了!
按照官方文档,我们进入ssh后台,输入

wget https://raw.githubusercontent.com/xdtianyu/scripts/master/lets-encrypt/letsencrypt.conf
wget https://raw.githubusercontent.com/xdtianyu/scripts/master/lets-encrypt/letsencrypt.sh
chmod +x letsencrypt.sh

然后进入/root下看看,是不是有这两个玩意?

有了?恭喜你第一步完成了.接下来就是要点了.你有两种方式.如果你能看懂开发文档,可以采用批处理方式/如果你没看懂,最好一步步来.这里先分步讲解,然后再讲解批处理.实际上批处理很简单的.

 

四、从这里开始的是进行分步讲解

1,按照官方指引显示,一会我们会运行刚才保存的sh文件,所以咱们需要先编辑下.
打开letsencrypt.conf, 然后我们会看到这个:

ACCOUNT_KEY="letsencrypt-account.key"
DOMAIN_KEY="example.com.key"
DOMAIN_DIR="/var/www/example.com"
DOMAINS="DNS:example.com,DNS:whatever.example.com"
#ECC=TRUE
#LIGHTTPD=TRUE

*实战时可能略有出入,无太大变化.

这里我们需要编辑的是DOMAIN_KEY DOMAIN_DIR 和 DOMAINS

DOMAIN_KEY="你的博客名.com.key"

以本文为例:

DOMAIN_KEY="bigblog.cn.key"

总之就按照需求来设定咯~
然后DOMAIN_DIR这里必须注意!这里输入的就要是之前你所记录的地址了.(要的是你网站存放的根目录路径)
我估计大家的地址都应该是这样的:

/home/wwwroot/环境名称/domain/标识域名/web/

啥?你没懂?你在看这图:

懂了吧~复制过去就好了 支持
*标识域名/web 后面没有 / !也就是结尾要以web结束,不要打/上去!别问为啥... 支持我也不知道....
接下来DOMAINS="DNS:example.com,DNS:whatever.example.com"这块的话按需定制了~
例如你的这个证书要这些域名访问的时候能用:www.bigblog.cn 的话,这里就这么写:

DOMAINS="DNS:bigblog.cn,DNS:www.bigblog.cn"

当然理论上支持更多的绑定(具体没试过,爱做死的可以试试)例如这样:

DOMAINS="DNS:bigblog.cn,DNS:www.bigblog.cn,
DNS:mods.ren,DNS:freemi.top(等等)"

发现规律了吧~每添加一个新绑定的域名,你就需要在前面加上:

,DNS:

嗯再不懂就还是去好好读书吧...
最后两个注释可以看我给大家的技术文档,一般没用,所以略过.

下一层!实战安装证书!

 

五、重头戏来了!安装Let's Encrypt证书!
我们应该怎样安装呢?按照官方文档,我们输入指令:

./letsencrypt.sh letsencrypt.conf

这样就会:

 

嗯大概就这样了反正最后会出现绿字
然后我们看下root目录!


接下来,我们会用到重命名命令和移动命令,就全部完事了!

mv bigblog.key
mv -f /root/bigblog.crt /home/wwwroot/com/etc/blog-ssl
mv -f /root/bigblog.key /home/wwwroot/com/etc/blog-ssl
mv -f /root/bigblog.csr /home/wwwroot/com/etc/blog-ssl

这里注意,上面的bigblog.key  bigblog.crt什么的都要自己设定!

mv 你的在root文件夹下的文件名.key(这里是一个空格!)标识域名.key
mv -f /root/标识域名.crt /home/wwwroot/环境名称/etc/标识域名-ssl
以此类推懂了吧 ↓自己试着改改↓
mv -f /root/bigblog.key /home/wwwroot/com/etc/blog-ssl
mv -f /root/bigblog.csr /home/wwwroot/com/etc/blog-ssl

然后运行这些命令后在 /home/wwwroot/环境名称/etc/标识域名-ssl 下面的三个文件就会更新!
然后!*必须重启apache后再打开你的网站
重启命令:amh apache restart
现在!!激动人心的时刻!!

下节重点!如何定期自动续期证书!

 

六、续费

声明:由于接下来的内容需要长达一个月的时间来验证,所以目前只能提供方案,不保证可行性! 支持欢迎指点

接下来的续期实际上很简单,就是一个定时进行批命令的处理运行就是了.

你需要cron 而这玩意怎么用呢我也说不好(毕竟我也不会)只供参考有问题务必指出来QwQ
网上给出的都是

yum install vixie-cron
yum install crontabs
chkconfig crond on //开启启动该服务

这样的,但实际操作时:
yum install vixie-cron 我没成功,找不到包.
所以我运行了第二个命令,然后貌似成功了
具体怎么办实际上我也不清楚所以还是个问多问大神多查资料吧.网上说的都很怪我也是没看懂.
然后进入全局配置文件 (/etc/crontab)crontab是文件的名字!不是目录!
然后这里需要输入命令了!这里该怎么办?
莫慌!我们先创建个sh批处理文件(照葫芦画瓢会不)
实际上就是把之前的命令全都列好放到一个文件夹里:

like this 这次该怎么替换不用教了吧,很简单!
然后我们把编辑好的文件!注意要先转换!

真的很重要!不转换的话linux无法运行的!
然后我们再把保存的文件复制到/root目录下 这里命名以ssl.sh为例.

紧接着我们回到刚才的那个crontab文件,这么编辑:

0 0 1 * * root /root/ssl.sh

意思是每月的1号0时0分运行这个命令,当然你可以自己定制,只要别多余90天就好,其次推荐在网站访问量最少的时候运行!
这里的root 是以root用户运行 后面的就是命令的地址咯~
就这样,一切都结束了!
小记:最后的这个定时处理因为时间关系没有验证,所以希望各路大神能够替下建议指点问题,真的很感谢!
同时指出!进行这些操作前必须备份全部数据!
数据无价!

 

 

 

七、在Linux中加入cron任务[补充]
文献:http://www.linuxidc.com/Linux/2015-02/113836.htm
要添加cron任务,你可以使用称为crontab的命令行工具。
具体操作方法:

引用:

前提摘要:
此刻我们是已经有了ssl.sh 这个批处理文本的,但是我们想让它每个月自动运行,怎么办> <


此刻我们进入ssh后台
输入

# crontab -e

注意要用root用户创建这个计划任务
你将会看见一个文本编辑窗口 一排的蓝色#
#
#
#
#
#
#

我们按键盘上的Ins键,进入输入模式,输入:

0 0 1 * * /root/ssl.sh

同样的命令,只不过不需要输入root那个用户的标记了.
然后我们输入

# crontab -l

如果你看到这个了,就代表你成功了!

你以为完事了?抱歉,没有呢~
为了保证成功率,在夜深人静的时候,你需要重启vps,然后不要做任何事!直接进入ssh输入这个命令:

/sbin/service crond status

如果反馈中有这样的字
Active: active (running) since Sun 2016-05-01 17:11:47 CST; 8s ago
后面的是运行时间不重要,但是前面一旦有Active了,就代表这把算是真正的完成了!!那么恭喜你走上了SSL的快车道!

心里的一个石头落下来,这把是真的END了
观众提问环节:
Q:这https的SSL证书是免费的吗?
A:免费.
Q:必须要先随便弄个证书去开启那个AMSSL吗?
A:实测目前为必须.在不开启的情况下命令无效貌似.
Q:这玩意太难的不会弄,能帮忙吗?
A:可以.任何时间都可以通过我博客留言或者QQ联系我,然后具体帮忙的时间再定.要求自己准备好环境什么的,密码该改的都改好数据该备份的都备份好.嗯免费帮忙>3<

文/木木

发表评论

电子邮件地址不会被公开。 必填项已用*标注