内容简介:博客之前一直serve在github.io上面,由于github访问速度实在是慢,所以打算迁移到自己买的阿里云服务器上。 但是,当我把自己的域名解析到阿里云服务器上时, wtf,返回的页面居然是一个阿里云的页面,要求我对服务器进行备案。 备案?emmm...可以接受。我点进去, 结果发现下面这些东西。。。。所以如何绕开烦人的备案? 我发现当我只是通过ip访问时, 一切正常; 当我使用域名访问时,则返回阿里云的备案页面。而我的域名又是在腾讯云买的, 所以可以断定:
博客之前一直serve在github.io上面,由于github访问速度实在是慢,所以打算迁移到自己买的阿里云服务器上。 但是,当我把自己的域名解析到阿里云服务器上时, wtf,返回的页面居然是一个阿里云的页面,要求我对服务器进行备案。 备案?emmm...可以接受。我点进去, 结果发现下面这些东西。。。。
还能不能让人好好玩耍了!
所以如何绕开烦人的备案? 我发现当我只是通过ip访问时, 一切正常; 当我使用域名访问时,则返回阿里云的备案页面。而我的域名又是在腾讯云买的, 所以可以断定: 这是一起http劫持事件
。 阿里云劫持了我的http请求,判断是通过域名访问, 则篡改我的http响应。如何解决呢?https可以完美解决这种问题。
Let's Encrypt
那么问题来了,https要求有一张受浏览器信任的证书。这时,Let's Encrypt 作为一个免费、受信任广的证书签发机构,自然成为了我的首选。
但是,就在这时,我踩了两个坑。
腾讯云域名解析
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。这就好办多了, 类似下面这样配置域名解析就可以了:
然后你可以获得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
总体还是蛮简单的,只要不像我一样愚蠢地踩到腾讯云域名解析路线的坑即可。
以上所述就是小编给大家介绍的《绕开阿里云域名备案: http服务升级到https小结之 如何绕开阿里云&腾讯云烦人的备案》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- WhatsApp新漏洞:iPhone用户可以绕开登录控制
- CentOS+Nginx+https+flask+域名备案
- 央行要求金融机构备案区块链技术应用
- LinuxVPS使用skicka将文件上传至GoogleDrive网盘,支持编辑-下载等+英国免备案虚拟主机
- 实战 -- 没备案的小网站如何合理利用云主机厂商的资源抗注18G/s的MEMCACHED UDP DRDOS 攻击
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。