美文网首页
升级到https踩坑小结

升级到https踩坑小结

作者: 喻家山伯爵 | 来源:发表于2019-02-12 20:39 被阅读0次

起因:

博客之前一直serve在github.io上面,由于github访问速度实在是慢,所以打算迁移到自己买的阿里云服务器上。
但是,当我把自己的域名解析到阿里云服务器上时, wtf,返回的页面居然是一个阿里云的页面,要求我对服务器进行备案。 备案?emmm...可以接受。我点进去, 结果发现下面这些东西。。。。


image.png

还能不能让人好好玩耍了!

所以如何绕开烦人的备案?
我发现当我只是通过ip访问时, 一切正常; 当我使用域名访问时,则返回阿里云的备案页面。而我的域名又是在腾讯云买的, 所以可以断定:这是一起http劫持事件
阿里云劫持了我的http请求,判断是通过域名访问, 则篡改我的http响应。如何解决呢?https可以完美解决这种问题。

Let's Encrypt

那么问题来了,https要求有一张受浏览器信任的证书。这时, Let's Encrypt 作为一个免费、受信任广的证书签发机构,自然成为了我的首选。

但是,就在这时,我踩了两个坑。

腾讯云域名解析

image.png

let's encrypt是一家境外的CA, 所以在选择线路类型时需要选择默认。我当时选择了境内而不自知,费了一番功夫才发现原来境外解析不了这个域名。

阿里云的篡改http响应

let's encrypt 给你签发证书的条件是证明这个域名是你的。
有两种方式, 一种是webroot, 即你在你的域名解析到的服务器的80端口上serve一个let's encrypt 指定的页面。即我访问http://www.example.com/letsencrypt,返回的需要是let's encrypt指定的文本。
我一开始就是用的这种方式,使用了let's encrypt 的certbot的webroot模式去验证。结果发现TM返回的response被阿里云劫持了。发现这里绕了个圈,又回来了。

还好let's encrypt提供了另一种方式:域名解析指定的txt。这就好办多了, 类似下面这样配置域名解析就可以了: image.png

然后你可以获得let's encrypt给你签发的证书, 在/etc/letsencrypt/live/域名/路径下。

上nginx配置

最后用nginx 为你的服务serve一下即可。上nginx配置:

server {
        listen       443 ssl http2 default_server;
        listen       [::]:443 ssl http2 default_server;
        server_name  _;
        root         /root/workspace/eltonzhong.github.io;

        ssl_certificate "/etc/letsencrypt/live/therollingstones.cn/cert.pem";
        ssl_certificate_key "/etc/letsencrypt/live/therollingstones.cn/privkey.pem";
        ssl_session_cache shared:SSL:1m;
        ssl_session_timeout  10m;
        ssl_ciphers HIGH:!aNULL:!MD5;
        ssl_prefer_server_ciphers on;
}

The end

总体还是蛮简单的,只要不像我一样愚蠢地踩到腾讯云域名解析路线的坑即可。

相关文章

  • 升级到https踩坑小结

    起因: 博客之前一直serve在github.io上面,由于github访问速度实在是慢,所以打算迁移到自己买的阿...

  • 个人博客标签分类

    【小结】零碎的小结 【踩坑记录】报错等记录,防止再度踩坑 【总结】比较完整的总结 【想法】自己的一些想法和推论 【...

  • Retrofit Https踩坑记录

    Retrofit Https踩坑记录 前言 新司机上路,坑多,本文重点是踩坑,不详细讲retrofit用法,本文不...

  • Flink1.11升级填坑

    背景 现有集群版本是Flink 1.10.1,想要升级到社区最新的版本Flink 1.11.1. 踩坑过程 No ...

  • 黑苹果升级笔记

    昨晚把 macOS 从 10.14 升级到了 10.15,貌似没踩什么坑。记录一下: 打了DSDT 电量补丁、睡眠...

  • npm 包发布经验分享

    重点阐述 npm 包发布前后所踩坑~ 踩坑札记 https 若 npm 包中 method 含协议类型为 http...

  • 可视化大屏产品经验总结

    最近做的都是可视化大屏项目,踩了不少坑但也获得了一些经验,做个小结作为留存也分享给正在踩坑的产品人。 1、项目背景...

  • Xcode8/Swift3 入坑笔记

    前言 今天把公司项目的swift代码升级到Swift3,遇到了不少坑 现在总算能跑起来了..还有很多坑要踩...这...

  • Autoscaling GitLab Runner on AWS

    Autoscaling GitLab Runner on AWS 踩坑[https://mp.weixin.qq....

  • elementUi 2.11.0版本table组件踩坑日记

    type="expand" 踩坑记因为业务的需要把element-ui从2.4.11升级到2.11.0后el-ta...

网友评论

      本文标题:升级到https踩坑小结

      本文链接:https://www.haomeiwen.com/subject/wvxleqtx.html