Hexo 博客 Coding+Github 双线部署求 https 方案

2017-03-03 17:16:52 +08:00
 Antidictator

接上文 /t/344377 知道了 Cloudflare 是通过 CDN 的方式来实现 HTTPS 的,但这种方式它的原理是当访客使用 HTTPS 访问站点的时候,从访客到 CloudFlare 这段是加密的,然后从 CloudFlare 到站点这段是明文的,所以说这种方式是非完全安全的, Chrome 下允许加载不安全的脚本(即 CloudFlare 的证书)后就会完全变成红的感叹号。

这就很尴尬了,幸好看到了双线部署,那么问题来了。

我想实现的是 Coding Pages 使用它自带的 Let ’ s Encrypt 证书, Github Pages 使用 Cloudflare 半身不遂的证书,但是我在配置 Cloudflare 的时候已经把域名的 DNS 服务器设置成 Cloudflare 在美国的了。貌似因此无法在 Coding Pages 申请证书

http://i.imgur.com/QextJwAg.png

插入一个小问题, CNAME 域名解析是解析到 Pages.coding.me 还是${username}.coding.me ,因为生效一次要很久,所以验证有难度。

大神们可以提供一下思路吗。

BTY

每次发帖都发到 Chamber 是一种被降权的体现吗?还有可能因为每天都刷 V2 导致访问频率不太正常,不能及时回复还望理解。 1800s...

9265 次点击
所在节点    程序员
33 条回复
Antidictator
2017-03-03 17:18:37 +08:00
贴的图好像有点奇怪,内容如下:

注意:申请 SSL/TLS 证书需要通过 Let's Encrypt 的 HTTP 方式验证域名所有权。如果您的域名在境外无法访问 Coding Pages 的服务器,将导致 SSL/TLS 证书申请失败。

:)
helloit
2017-03-03 17:24:26 +08:00
coding.net 的 CNAME 是绑定 pages.coding.me
github pages 貌似无法解决 https 自定义域名的问题
xiubin
2017-03-03 17:42:54 +08:00
硬是没看懂,说下我自己的。默认解析 coding ,海外解析 github 。因为 github 被我设置强制 HTTPS ,然后海外访问会爆红,但无所谓啦
Antidictator
2017-03-03 17:50:33 +08:00
@helloit 所以我用 cloudflare,但是他要我更换 dns 服务器,更换后貌似导致域名访问不了 coding pages 的服务器了

@xiubin 对对,就是要你这种,海外爆红,但是国内绿绿
Antidictator
2017-03-03 17:52:01 +08:00
@xiubin 你有写过相关的教程,或者资料,都可以扔给我:)
deweixu
2017-03-03 18:28:19 +08:00
感觉还是用别家的博客服务比较好, segmentfault 就不错
deepjia
2017-03-03 18:36:14 +08:00
能不能思路线整理清楚再发,看着太累了。

仔细看了下,你的目的只不过是想要 GitHub Pages 使用自定义域名 + HTTPS 而已?

要实现自然是套 Cloudflare ,但是你要在 CloudFlare 的 Crypto 里,把 SSL 配成 Flexible ,否则是不允许 CDN 通过 HTTP 连接服务器的。配上以后浏览器才不会提示不安全,我就是这么用的。

双线才不好搞 HTTPS 呢……
oott123
2017-03-03 18:47:43 +08:00
首先,既然你要 Coding + GitHub 双 Pages 部署,那么我理解你是对国内国外两边访问速度都有追求。 CloudFlare NS 方案排除,因为 CloudFlare 的 NS 不能分区解析,所以无法直连 Coding 服务器。

其次,你两边都要有 https 。考虑到 GitHub Pages 不提供对自定义域名的 https 服务,你需要一个反向代理给你加上 HTTPS , CloudFlare 是最好选择。

再者,看起来你没有买服务器的打算。如果考虑购买服务器,那你可以自己设置一个对 GitHub Pages 的反向代理来提供国外服务。

那么怎么办呢,答案就是购买 CloudFlare 的 Business 或 Enterprise 方案。这两个付费方案,支持 CNAME 接入。你可以通过支持分区解析的 DNS 将国内外分别解析到 Coding 和 Github 双 Pages (需要对 Let's encrypt 的地区解析到 coding ),同时实现 https 。那这要多少钱呢,不好意思, $ 200 / month ,还不如自己买服务器。

综上所述,想免费的实现这套东西是不可行的,要么选择放弃 https ,要么选择放弃海外 /国内访问之一。
oott123
2017-03-03 18:51:32 +08:00
发完才发现 7 楼说得对
Antidictator
2017-03-03 19:09:23 +08:00
@deepjia 抱歉,我的文字确实很乱,你的我已经试过了,没用。还有我是双线部署就是为了解决这个问题
Antidictator
2017-03-03 19:12:29 +08:00
@oott123 不不不,你说的才是我想要,如果反代的话,国外服务器应该可以吧?

@deepjia 方便提供一下你的域名地址吗,是绿色的小图标吗?难道是我操作有误?
deepjia
2017-03-03 19:15:56 +08:00
timothyye
2017-03-03 19:39:56 +08:00
之前折腾过的一个方案,域名用 dnspod 的智能解析,加上国内 gitcafe 再 host 一份 blog ,可以根据不同线路访问分流了

http://xiaozhou.net/use-gitcafe-to-speed-up-your-blog-2014-10-11.html

供参考, gitcafe 被 coding 收购了,不过感觉应该大同小异
Antidictator
2017-03-03 19:49:28 +08:00
@deepjia 难道是我没配 www 吗。我再试试,谢谢了。


@timothyye 非常感谢:)
oott123
2017-03-03 20:10:13 +08:00
@Antidictator 你给国外反代用国外服务器就行。

至于页面资源不是 https ,你可以检查一下你的 Jekyll 模板之类的,确认他生成的代码是 https 开头的。
lan894734188
2017-03-03 20:18:40 +08:00
Alphassl 泛域名证书 部署到两边
Antidictator
2017-03-03 20:33:09 +08:00
@oott123 好的,我先尝试下 7 楼的方案
Antidictator
2017-03-03 20:36:09 +08:00
@oott123 一开始就是设置成这样子的。但是还是不行





oott123
2017-03-03 20:40:43 +08:00

移除你的 CNZZ 统计脚本,红色不安全会变成灰色 https
移除你的占位图,灰色小图标会变成绿色小锁
Antidictator
2017-03-03 20:44:10 +08:00
@oott123 身为一个开发人员我竟然没有下意识 F12 。奇怪,我明明没有 cnzz 账号啊。

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

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

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

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

© 2021 V2EX