使用 Certbot + Let's Encrypt 小步快跑的奔向 Https
HTTPS SSL …原理、好处就不扒了,直接上过程。
了解Certbot
- 首先 进入 Certbot
- 选择使用的服务器软件 / 主机系统
- 选择后进入
生成及安装证书
-
安装依赖的 epel 源,然后安装 certbot
$ sudo yum install epel-release $ sudo yum install certbot
-
certbot certonly
命令 , 生成证书公私钥. 示例: (支持多域名, )certbot certonly --webroot -w /home/sites/webroot1 -d domain1.com -w /home/sites/webroot2/ -d www.domain2.com
此过程中 Certbot 会创建随机文件,然后远程验证域名及服务控制权
新生成的证书及相关文件,将生成到 /etc/letsencrypt 路径下。
drwx------ 3 root root 4096 Aug 8 23:11 accounts drwx------ 3 root root 4096 Aug 8 23:16 archive drwxr-xr-x 2 root root 4096 Aug 8 23:16 csr drwx------ 2 root root 4096 Aug 8 23:30 keys drwx------ 3 root root 4096 Aug 8 23:16 live #nginx 可用证书目录 drwxr-xr-x 2 root root 4096 Aug 8 23:25 renewal
-
编辑 site.conf 加入你的 ssl 证书
fastcgi_send_timeout 300; fastcgi_read_timeout 300; } location ~ /\.ht { deny all; } # 看这里 ssl_certificate /etc/letsencrypt/live/domain.com/cert.pem; ssl_certificate_key /etc/letsencrypt/live/domain.com/privkey.pem; }
-
然后证书都好了让我们,把
http
请求都转向https
吧server { listen 80; server_name icoding.so; rewrite ^/(.*)$ https://icoding.so/$1 permanent; }
-
重启 nginx 刷新浏览器欣赏那个绿色的小锁吧
-
最后 为了保证证书的长期可用,添加个 crond 任务,每月自动续期即将到期的证书吧
crontab -e # 输入 * * * */1 * /usr/bin/certbot renew 1>> /dev/null 2>&1
最后推下本人小博客, icoding.so ,基于 laravel 5.2 github 开源,文档编辑中。
踩坑过后最终确定:
- Let's Encrypt 是单域绑定, 虽然支持多域名,但是不支持泛域绑定。
- Let's Encrypt 需要每90天续期。
使用的童鞋自行斟酌
本帖已被设为精华帖!
经过一段时间的了解 , 发现本文并不完善 , 但是作为记录继续保留 , 本着负责的态度,推荐大家阅读.
另外附上 小博客的 SSL Report
本帖由 Summer
于 8年前 加精
@Summer 在这了, 其实核心就是一条命令。
吐槽下啊. textarea 编辑 markdown 真心苦,最后是在我博客编辑成了粘贴到这的。
看看我博客的编辑器吧,有意的话我请参考。
:+1: 网站终于打开了,贴上源代码地址:https://github.com/jason-chang/icoding.so
评论框和编辑器最近一直被人吐槽 :flushed:
感谢分享,一会去试试
感谢分享,一会去试试
@jasonchang
s2.icoding.so 这个域名的https证书没配对
@Summer
回复完了有时候会出现一段json
Let's Encrypt 3个月延期太麻烦了。
@TimJuly 有朋友也反应过了,我一直没定位到
@Summer
回复按钮的 type 是 submit,这样在js事件没绑定上的时候就会触发浏览器的默认事件,就提交表单到 https://phphub.org/replies 这里了,具体为啥没绑定上事件,我也不太清楚,暂时没复现.
@TimJuly 阿里云CDN的 https 存在问题
@TimJuly FIXED 多谢 :sunglasses:
@Summer 附言 403 了, 另外补充了内容,见文章底端。
@Summer 附言再次 403,作为活跃社区以后上线 / 调试是否也应该调换到晚上?
按照文章做没有成功,出问题的地方在nginx的conf,加入了如下内容就好了:https://m.reactshare.cn/issues
参考文档:https://s.how/nginx-ssl/
@jasonchang 是个 BUG,抱歉上次的反馈没看着,消息太多
@jasonchang Bug 已改正,另外发现好像语气里有指责的意思,别这样
@Summer 辛苦了 :+1: , 太敏感了吧,语气重了? 话说还是把头像换回来吧,现在头像配上上边的回复,违和!!!! :goberserk:
@Summer 还是软妹 / 动漫头像合适。:joy:
@jasonchang :scream: 这是我最好看的一张头像了
@Summer 老大头像很酷
@Summer 我的小博客刚刚加上 github 登陆 , 发现回调过来获取用户信息好慢……然后看看 phphub 是不是也这么慢。然后看到了真这个。
话说是不是 fastcgi 超时设的低了?
另外不知道 @Summer 有没有 catch guzzle curl 异常没有,国内的网的啊。最好catch下吧。我的:
@Summer phphub 现在好像没用 bugsnag 啦,记得 phphub laravel4 时代是有的,话说现在 bugsnag 国内速度也挺快的。
@jasonchang Bugsnag 不稳定
配置多个server 报错
chrome浏览器出现访问两个https网站 其中一个访问正常,另一个报 ERR_SSL_PROTOCOL_ERROR 错误
而 safari浏览器访问这两个https网站都正常 ;???