2017 年 6 月 15 日申请 Let's Encrypt 免费的 ssl 攻略,之前的攻略都可以扔了。

2017-06-15 22:31:12 +08:00
 uuair

为什么说以前的都可以扔了呢?因为我走了很多很多弯路,然后还不相信官方的话,虽然还有问题无法解决,但我已经做到 A+了。

好了,开始干活,我的系统环境是 ubuntu17.4+nginx+ghost 博客

首先要知道,申请 Let's Encrypt 的方法,官方有一个自动获得软件,叫 Certbot,它的官网有使用方法,一定要看这个!!!!虽然他还有不完善的地方,不过我会改掉的!

cerbot 官网

按照官方网站里面选择的 ningx 以及 ubuntu17.4 的安装方法运行吧:

$ sudo apt-get install software-properties-common  
$ sudo add-apt-repository ppa:certbot/certbot  
$ sudo apt-get update  
$ sudo apt-get install python-certbot-nginx   

看,上面最后一步其实已经跟很多教程不同了,对吧!

下一步再按照官网运行:

certbot --nginx  

好了,上面这部需要 sudo 或者 sudo su 来运行,这个不算毛病。

第一步输入一个邮箱,以后可以找回你失去的东西,然后选择域名。

接下来就好玩了,因为这个软件,已经配置好了 nginx,按照其他教程,后面还要弄关于 nginx 的问题,还有什么验证问题,但现在,都不用干了,因为都好了!!

软件生成的文件/etc/letsencrypt/options-ssl-nginx.conf<--------看好了这个文件,里面的内容是这样的:

ssl_session_cache shared:le_nginx_SSL:1m;
ssl_session_timeout 1440m;

ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;

ssl_ciphers "ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS";

仔细看看,已经包括很多教程的内容了,甚至更多! 所以不要学教程,在 nginx 的配置文件当中添加这些内容,会出错的!

所以下一步是修改,因为这时候进入测试网站:https://myssl.com 看到的结果是 B 级。

here we go!

根据这里: https://weakdh.org/sysadmin.html 指出的问题,Diffie-Hellman for TLS 有问题,certbot 是没有设置的,所以需要手动来一波。

我是这样的,进入 /etc/letsencrypt/live/你的域名 /
这里存着生成的各种 pem 以及证书,就在这里吧:

openssl dhparam -out dhparams.pem 2048  

等啊等啊,然后生成 dhparams.pem 了,这下进入 ningx 的目录,找到网站的.conf 文件,你看,文件里面已经被改的五花八门了吧,这就是 certbot 生成的,在这些文件下面添加:

ssl_dhparam /etc/letsencrypt/live/你的域名 /dhparams.pem;

然后,我是说然后又来了,上面这些只能让你的网站到 A,下面还有一个,开启全局 https,或者说设置 HSTS,再楼上那个文件下面继续添加:

 #HSTS (ngx_http_headers_module is required) (15768000 seconds = 6 months)  
 add_header Strict-Transport-Security max-age=15768000;

保存吧,然后无论是systemctl restart nginx还是sudo nginx -s reload都可以开启 ssl,虽然虽然,并不完美!

最后来一步我用不知道对错的自动更新,我实在 root 下运行的:

crontab -e  
0 3 * * 2,4,6 certbot renew -q --pre-hook "service nginx start" --post-hook "service nginx restart"

上面这个对不对,我没法测试啊,理论上是可以的吧。。

7711 次点击
所在节点    SSL
60 条回复
mokeyjay
2017-06-16 10:05:29 +08:00
不是很懂你这种自信心爆棚的家伙
mritd
2017-06-16 10:12:45 +08:00
@ershiwo 完全正确
jianleer
2017-06-16 10:16:48 +08:00
感谢楼主,A+ 了
momocraft
2017-06-16 10:19:18 +08:00
考虑过为什么自己走了那么多弯路吗 :doge:
abclearner
2017-06-16 10:21:02 +08:00
看得雨里雾里的 我一技术小白 照着 DO 上的一篇攻略 弄完就 A+了
那个日期是干什么的?
ppwangs
2017-06-16 10:43:08 +08:00
sunber
2017-06-16 11:39:22 +08:00
感觉比我之前申请的 startssl 麻烦多了
lsido
2017-06-16 12:48:25 +08:00
哈哈哈哈,我居然看完了各种喷
4679kun
2017-06-16 13:05:26 +08:00
A+太简单了 来玩这个
myliyifei
2017-06-16 13:05:34 +08:00
非 443 端口没法用 很蛋疼
yangxuan8282
2017-06-16 15:06:09 +08:00
申请证书自动化工具有官方的工具 certbot,脚本有 acme.sh,用 docker 的话有 neilpang/nginx-proxy 和 blackglory/caddy-proxy,如果非说手动申请更先进的话总得说出点理由吧
Zohar
2017-06-16 15:37:50 +08:00
楼主成功地把一件很简单的事情给复杂化了→_→
momocraft
2017-06-16 15:39:33 +08:00
@yangxuan8282 解决其他方法中不存在的问题,给人更大的成就感 →_→
yangxuan8282
2017-06-16 15:43:19 +08:00
@momocraft 确实,可能会有点类似网站备案成功的那种仪式感
johnlui
2017-06-16 18:20:16 +08:00
A+ 并不是什么好事,虽然兼容性爆表,但是苹果 ATS 不认,而且支持的加密方式太多,除 MAC 端 Chrome 之外的其他浏览器有时候会报告很奇怪的问题,反而会影响真实用户的访问。
Tink
2017-06-16 19:39:32 +08:00
这是啥意思
litanid
2017-06-16 21:30:49 +08:00
zingl
2017-06-16 22:40:57 +08:00
前面套 HTTPS CDN,什么都不用,结束
yytsjq
2017-06-16 22:53:26 +08:00
Hardrain
2017-06-17 15:18:32 +08:00
个人认为还是 acme.sh 更好用,特别是申请 ECDSA 证书的时候.

Letsencrypt/Certbot 需要自己生成 CSR 而 acme.sh 不用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/368732

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX