产品服务AMH 免费服务器主机面板SSL证书 免费SSL证书申请 担保单 免费安全、零费率交易平台编程助手免费智能写代码、翻译AMYSQL 免费MySQL管理工具

AMH 社区首页

 AMH社区 - 开放自由有价值的社区

[综合话题] [amh安装Let's Encrypt实战]你还在羡慕别人家的SSL?!!You Can Do It!

mikifuns
银牌会员
1425.54 价值分

mikifuns 发表于 2016-05-01 11:47:32
今天用手机访问博客时候,Chrome很不友好的弹了个框,说我SSL没记录不信任,心里这个别扭.之前一直在用的是Wosign的证书,时间长但是很不信任啊....肿么办>< 而且没有教程针对Let's Encrypt ,所以本着劳动者精神,自己动手丰衣足食,研究出了个小方法,分享给大家,当然我知识水平有限希望大神能够优化完美下.嗯二楼上教程,一楼放图!



ps:实战地址:https://blog.mikifuns.com 大家可以看下真正的Let's Encrypt Authority X3证书安装在了amh面板上! 支持
2016-05-01 11:47:32 1

mikifuns
银牌会员
1425.54 价值分

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

最终要的效果是:
1 显示已经开启站点ssl


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


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


*本文所有环境配置如下 环境名称均为com 主标识域名为 blog 本次运行环境为下一层:初次使用Let's Encrypt的准备工作*重要
  支持 (0分)  反对 (0分)
回复  2016-05-01 11:55:29 2

mikifuns
银牌会员
1425.54 价值分

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

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

3 再次确认目录这块你已经摸清楚了!
然后我们就可以开始下一步了!
[hr]按照官方文档,我们进入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下看看,是不是有这两个玩意?


有了?恭喜你第一步完成了.接下来就是要点了.你有两种方式.如果你能看懂开发文档,可以采用批处理方式/如果你没看懂,最好一步步来.这里先分步讲解,然后再讲解批处理.实际上批处理很简单的.
  支持 (0分)  反对 (0分)
回复  2016-05-01 12:22:16 3

mikifuns
银牌会员
1425.54 价值分

支持从这里开始的是进行分步讲解

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="blog.mikifuns.com.key"
懂了啥意思了吧~当然你还可以这么改:
DOMAIN_KEY="blog.mikifuns.xyz.key"
或者
DOMAIN_KEY="miki.blog.mikifuns.org.key"
总之就按照需求来设定咯~
然后DOMAIN_DIR这里必须注意!这里输入的就要是之前你所记录的地址了.(要的是你网站存放的根目录路径)
我估计大家的地址都应该是这样的:
/home/wwwroot/环境名称/domain/标识域名/web/
啥?你没懂?你在看这图:


懂了吧~复制过去就好了 支持
*标识域名/web 后面没有 / !也就是结尾要以web结束,不要打/上去!别问为啥... 支持我也不知道....
接下来DOMAINS="DNS:example.com,DNS:whatever.example.com"这块的话按需定制了~
例如你的这个证书要这些域名访问的时候能用:blog.mikifuns.com 的话,这里就这么写:
DOMAINS="DNS:blog.mikifuns.com"
当然像我这样用二级的博客站长很少!!大多都是顶级域名直接上是不是!那么我们就这么弄:(还是以mikifuns.com和www.mikifuns.com为例)
DOMAINS="DNS:mikifuns.com,DNS:www.mikifuns.com"
当然理论上支持更多的绑定(具体没试过,爱做死的可以试试)例如这样:
DOMAINS="DNS:mikifuns.com,DNS:www.mikifuns.com,DNS:mikifuns.xyz,DNS:www.mikifuns.xyz,DNS:mikifuns.pw,DNS:www.mikifuns.pw(等等)"
发现规律了吧~每添加一个新绑定 的域名,你就需要在前面加上:
,DNS:
嗯再不懂就还是去好好读书吧...
最后两个注释可以看我给大家的技术文档,一般没用,所以略过.

[hr]
下一层!实战安装证书!
  支持 (0分)  反对 (0分)
回复  2016-05-01 12:43:38 4

mikifuns
银牌会员
1425.54 价值分

重头戏来了!安装Let's Encrypt证书![hr]
我们应该怎样安装呢?按照官方文档,我们输入指令:
./letsencrypt.sh letsencrypt.conf
这样就会:


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


嗯哼,blog.mikifuns.com.key blog.crt blog.csr 这三个就是我们想要的!
[hr]
接下来,我们会用到重命名命令和移动命令,就全部完事了!
mv blog.mikifuns.com.key blog.key
mv -f /root/blog.crt /home/wwwroot/com/etc/blog-ssl
mv -f /root/blog.key /home/wwwroot/com/etc/blog-ssl
mv -f /root/blog.csr /home/wwwroot/com/etc/blog-ssl
这里注意,上面的blog.mikifuns.com.key blog.key blog.crt什么的都要自己设定!
mv 你的在root文件夹下的文件名.key(这里是一个空格!)标识域名.key
mv -f /root/标识域名.crt /home/wwwroot/环境名称/etc/标识域名-ssl
以此类推懂了吧 ↓自己试着改改↓
mv -f /root/blog.key /home/wwwroot/com/etc/blog-ssl
mv -f /root/blog.csr /home/wwwroot/com/etc/blog-ssl
然后运行这些命令后在 /home/wwwroot/环境名称/etc/标识域名-ssl 下面的三个文件就会更新!
然后!*必须重启apache后再打开你的网站
重启命令:amh apache restart
现在!!激动人心的时刻!!


你可以去开瓶可乐庆祝下了....当然!
一切还没结束!
要是这么就结束了我写这玩意干啥...
[hr]
下节重点!如何定期自动续期证书!
  支持 (0分)  反对 (0分)
回复  2016-05-01 13:33:17 5

mikifuns
银牌会员
1425.54 价值分

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

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

你需要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用户运行 后面的就是命令的地址咯~
就这样,一切都结束了!
[hr]小记:最后的这个定时处理因为时间关系没有验证,所以希望各路大神能够替下建议指点问题,真的很感谢!
同时指出!进行这些操作前必须备份全部数据!
数据无价!
[hr]
最后感谢 支持
https://github.com/xdtianyu/scripts/blob/master/lets-encrypt/README-CN.md 技术文档
https://www.logcg.com 让我对ssl有了兴趣写出此文
http://www.2cto.com/os/201411/348362.html ceontab定时任务命令介绍
http://www.centoscn.com/CentOS/help/2014/0527/3034.html 全局配置文件说明
http://blog.csdn.net/woaixiangrikui/article/details/23030147 sh文件编写语法指引
http://bbs.chinaunix.net/forum.php?mod=viewthread&tid=2118684 3楼的mv移动文件语法
以及电脑前的你能够支持我看完全文!非常感谢!
同时既然你看完了,不如告诉你个东西...
在我写这个文章的时候,有个机友也是知道后跟我说,有个地方能直接获取文件不用命令就能获得这个机构的证书.我去看了下,还真是.当然这个就适用于你特勤快自己续期的那种,但是也是多了种方法不是吗~网址献上!https://www.sslforfree.com 希望能对你有所帮助!
[hr]
嗯就这些了.如果有问题欢迎各位直接留言在下面! -----------本文仅限在amh.sh和miki.acg的博客间直接发布,转载请务必保留以下信息谢谢!
[hr]https://owncloudmiki.b0.upaiyun.com/02.fw.png
mikifuns 2016.5.1 劳动节快乐!
END


  支持 (0分)  反对 (0分)
回复  2016-05-01 14:02:09 6

lovem
银牌会员
2685.50 价值分

免费的ssl证书?
  支持 (0分)  反对 (0分)
回复  2016-05-01 14:49:08 7

mikifuns
银牌会员
1425.54 价值分

引用:
lovem 发表于 2016-5-1 14:49
免费的ssl证书?


对,Let’s Encrypt的证书是免费的!
  支持 (0分)  反对 (0分)
回复  2016-05-01 16:02:43 8

mikifuns
银牌会员
1425.54 价值分

补充:在Linux中加入cron任务[hr]
文献:http://www.linuxidc.com/Linux/2015-02/113836.htm 非常感谢
[hr]
要添加cron任务,你可以使用称为crontab的命令行工具。

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

此刻我们进入ssh后台
输入
# crontab -e
注意要用root用户创建这个计划任务
你将会看见一个文本编辑窗口 一排的蓝色#
#
#
#
#
#
#

我们按键盘上的Ins键,进入输入模式,输入:
0 0 1 * * /root/ssl.sh
同样的命令,只不过不需要输入root那个用户的标记了.
然后我们输入
# crontab -l
如果你看到这个了,就代表你成功了!




[hr]
你以为完事了?抱歉,没有呢~
为了保证成功率,在夜深人静的时候,你需要重启vps,然后不要做任何事!直接进入ssh输入这个命令:
/sbin/service crond status
如果反馈中有这样的字
Active: active (running) since Sun 2016-05-01 17:11:47 CST; 8s ago
后面的是运行时间不重要,但是前面一旦有Active了,就代表这把算是真正的完成了!!那么恭喜你走上了SSL的快车道!

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

真END吧.....
  支持 (0分)  反对 (0分)
回复  2016-05-01 17:19:10 9

mikifuns
银牌会员
1425.54 价值分

重要!请在处理计划任务那里看下9楼!以9楼为准!! 支持
  支持 (0分)  反对 (0分)
回复  2016-05-01 17:20:48 10
 1 2 3 >  (总3页)
AMH社区列表
用户服务中心