AMH 社区首页
AMH社区 - 开放自由有价值的社区
[综合话题] [amh安装Let's Encrypt实战]你还在羡慕别人家的SSL?!!You Can Do It! |
|
---|---|
mikifuns |
mikifuns 发表于 2016-05-01 11:47:32
今天用手机访问博客时候,Chrome很不友好的弹了个框,说我SSL没记录不信任,心里这个别扭.之前一直在用的是Wosign的证书,时间长但是很不信任啊....肿么办>< 而且没有教程针对Let's Encrypt ,所以本着劳动者精神,自己动手丰衣足食,研究出了个小方法,分享给大家,当然我知识水平有限希望大神能够优化完美下.嗯二楼上教程,一楼放图!
ps:实战地址:https://blog.mikifuns.com 大家可以看下真正的Let's Encrypt Authority X3证书安装在了amh面板上! 支持
点赞,加油! (2分)
2016-05-01 11:47:32 1
|
mikifuns |
1,首先 你必须已经有了个证书!!
这个证书,无论是免费的收费的自签的乱打的都必须有!(不知道为什么只知道如果没有的话,你不能开启站点https,就是那个AMSSL的配置) 最终要的效果是: 1 显示已经开启站点ssl 2 你能找到这个文件存放的目录! 一般存放地址是: /home/wwwroot/环境名称/etc/主标识域名-ssl *本文所有环境配置如下 环境名称均为com 主标识域名为 blog 本次运行环境为下一层:初次使用Let's Encrypt的准备工作*重要
回复
2016-05-01 11:55:29 2
|
mikifuns |
当我们完成上面的准备后,就可以为配置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 然后进入/root下看看,是不是有这两个玩意?wget https://raw.githubusercontent.com/xdtianyu/scripts/master/lets-encrypt/letsencrypt.sh chmod +x letsencrypt.sh 有了?恭喜你第一步完成了.接下来就是要点了.你有两种方式.如果你能看懂开发文档,可以采用批处理方式/如果你没看懂,最好一步步来.这里先分步讲解,然后再讲解批处理.实际上批处理很简单的.
回复
2016-05-01 12:22:16 3
|
mikifuns |
支持从这里开始的是进行分步讲解
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] 下一层!实战安装证书!
回复
2016-05-01 12:43:38 4
|
mikifuns |
重头戏来了!安装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 这里注意,上面的blog.mikifuns.com.key blog.key blog.crt什么的都要自己设定!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 mv 你的在root文件夹下的文件名.key(这里是一个空格!)标识域名.key 然后运行这些命令后在 /home/wwwroot/环境名称/etc/标识域名-ssl 下面的三个文件就会更新!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 然后!*必须重启apache后再打开你的网站 重启命令:amh apache restart 现在!!激动人心的时刻!! 你可以去开瓶可乐庆祝下了....当然! 一切还没结束! 要是这么就结束了我写这玩意干啥... [hr] 下节重点!如何定期自动续期证书!
回复
2016-05-01 13:33:17 5
|
mikifuns |
支持声明:由于接下来的内容需要长达一个月的时间来验证,所以目前只能提供方案,不保证可行性! 支持欢迎指点
接下来的续期实际上很简单,就是一个定时进行批命令的处理运行就是了. 你需要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
回复
2016-05-01 14:02:09 6
|
lovem |
免费的ssl证书?
回复
2016-05-01 14:49:08 7
|
mikifuns |
回复
2016-05-01 16:02:43 8
|
mikifuns |
补充:在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吧.....
回复
2016-05-01 17:19:10 9
|
mikifuns |
重要!请在处理计划任务那里看下9楼!以9楼为准!! 支持
回复
2016-05-01 17:20:48 10
|