仓促之间启用了 HTTPS 协议访问
使用百度开放云的应用引擎 BAE 基础版很久了,由于实在研究不明白服务器配置方面的技术,所以只能偷懒用着这种使用比较简单的 PaaS 平台。前几天发现百度云虚拟主机 BCH 支持自定义域名的 https,而百度也早就开放了 SSL 证书免费申请的服务,所以先在网上大致找了几篇有关 BCH 的教程看了一遍后购买了一个月的 BCH 服务试用下先。
云主机是前天购买的,这两天集中研究了下就把网站从 BAE 迁移过来并成功启用 https 访问了。看到打开网站时浏览器地址栏左侧显示的绿色小锁头,内心的满足感油然而生……
据百度介绍,这个证书是由 TrustAsia 联合 Symanatec 为百度开放云特供的,市场价四位数,有效期一年。当然,对于这些参数我基本属于不关心、不关注,毕竟免费的靠不住,这服务不一定什么时候就取消了。既然有,又能用来提升下档次(据说搜索引擎对于启用 https 的页面是优先收录的),那就权当天上掉馅饼,知足就行。
既然标题说是仓促间启用,那肯定有不完美的地方。自前天购买了 BCH 到昨天晚上成功启用 https,这期间遇到了很多的小麻烦。到目前为止,这些问题可以百度谷歌到解决方法的就自己解决,解决不了的就绕道走回避一下,当然对于业外人士来讲,即便是解决了的问题我还是有很多一知半解的。不过除了这些,还是有一处摆在表面的明显瑕疵。
现在网站所有的静态资源,如图片文件、媒体文件等都是引用自百度对象存储 BOS,而 BOS 又不支持文件的 https 形式链接,这就导致凡是引用了 BOS 静态资源的页面,浏览器地址栏的小锁就变成了灰色带有感叹号,提示链接不安全,看上去很不舒服。如果 BOS 能自身对 https 做支持最好不过,如果不行就只能考虑迁移了。
而除了这个摆在表面的,还有一个如鲠在喉的小问题。 BCH 的环境语言支持 nginx 与 lighttpd,如 BCH 宣传的,nginx 的性能更好,但是这两天试了很多次也没有搞定 url-rewrite 的规则要怎么写,导致修改了固定连接形式的文章不能正常打开,所以现在只能先用着 lighttpd 的环境。这就只能再慢慢查资料研究吧。
我就http 用用也蛮好,省的折腾。
@Coney 没错。其实我之前更喜欢折腾,现在几乎处于折腾够了的感觉,觉得以后除了忍受不了的问题,不会再有这种程度的折腾了。当然这次的折腾就像文里最后说的,还不算完……想想都犯怵。
@sys 上了年纪,实在不像以前那样了,哈哈。
@Coney 对啊,一是犯懒,二是学习能力也下降了
@sys 我主要是有些东西看的没那么重了,比如博客只是分享自己的心得,或者好物什么的,其他不那么重要的不再那么关注了。
我是闲外链资源麻烦,所有图片啥的都使用本地资源,外链 https 自己也不会~
@nyun 本地化资源肯定是最省事的啊,无奈之前的服务器对本地化支持很差。现在换了服务器倒是可以,不过已经有非常多的外链了,实在懒得重新整理成本地化了……
相比阿里云的虚拟空间,百度BCH在价格上还是有优势的。
@Han 阿里云不了解,不过现在 BCH 最基础的机型搞促销,一年是 192,我觉得还可以。
我用的是腾讯提供的免费SSL
@小叶 刚看了下你的证书是 GeoTrust 颁发的。去腾讯云试了下申请新证书,现在也变成跟百度云这边一样是 TrustAsia 的了。不过感觉免费的都差不多,收费的好看点..
@sys 这个证书本身是收费的,你看看七牛云的SSL证书。和我现在用的一模一样。
不科学啊,我的bch为什么启用https后,博客样式css以及js链接都没成功加载。
博主,你帮我看看下,bch.mrju.cn 为什么没有成功呀,我后台链接都启用https了。
@mrjucn 呃 我开始也走过这个弯路 后来谷歌到了官方文献库有解决方法 你看看这篇文章自己配置下吧
https://codex.wordpress.org/Administration_Over_SSL
@sys 我一直以为bch不支持wordpress的https,看了你的文章我才来问问的,都是bch的,你的成功了,我的没成功额。
@mrjucn 我开始也是一头雾水,查了好多资料才配置好的。
@sys 你给我发的那个链接里面全是英文的,表示看不懂的。不过我觉得你可以就bch主机给wordpress博客配置https详细的方法写一下,网上好像都没有bch这块的东西。
@mrjucn 别看英文其实蛮简单的,耐心点看下来就懂了,按照他说的意思,你可以在 wp-config.php 文件里找到
/* That’s all, stop editing! Happy blogging. */
在它的前一行加上下面代码
define(‘FORCE_SSL_ADMIN’, true);
if ( strpos( $_SERVER[‘HTTP_X_FORWARDED_PROTO’], ‘https’ ) !== false ) {
$_SERVER[‘HTTPS’] = ‘on’;
}
就可以了
@sys 自从这个问题解决后,我今天测试了下,用bae也可以搞高上大的https了。哈哈。
@sys 你不必为了https从bae转到bch了。那方法我测试成功了。
@mrjucn BAE 基础版不行的啊,只有专业版才可以。不过专业版我不太会用
@sys 我用的就是bae基础版测试的,成功了。!!!
@mrjucn 但是之前官方给出过答复说基础版不支持自定义域名的 https 啊,要怎么操作
@mrjucn 你确定你用的是 BAE 基础版测试的吗
@sys 360网站加速功能里的控制面板里有ssl上传功能,上传ssl后再用你给我的代码,就可以正常显示咯。
@mrjucn 用的 CDN?那就是说这不是 BAE 基础版原生的支持了吧..不过不太明白是什么原理
@sys 确定以及肯定,2毛钱一天的基础版。。。
@sys 一句话两句话说不清楚原理,之前好几个月前就在测试,无奈页面一直显示不正常。前天的到你给我的那个代码后,我这个测试终于成功了。
@mrjucn 看来你又可以出教程了
@sys 哈哈,差不多吧,之前为了https买了香港独立ip虚拟主机,现在这个办法可行了,我就可以转回国内主机了。香港主机太慢了。
@mrjucn 如果是 BAE 原生支持 https 的话我会转回去,CDN 的话我还是不太喜欢用啊
@sys 是cdn。。。看来你要失望了。
@mrjucn BAE 基础版目前的开发进度明显趋缓,很久没什么功能性和配置上的更新,而 BAE 专业版 和 BCH 的步伐明显更快。感觉基础版可能被取代