看到了许多朋友的博客都用上了SSL证书,我也不甘落后。去沃通申请了免费SSL(身上穷的你都难以想象,得亏是在家呆着,出去了非得饿死不可),然后叫朋友给帮忙配置上(服务器不是我的,我就分配到了一个虚空,连控制面板都没有,就是这么低调)。

朋友帮忙给配置上后,我去用https对站点进行访问,OK,果然可行。但是http和https都可以访问,不行必须得强制https,不然不就没意思了嘛!到网上搜了下教程。找到以下这串代码(针对Apache&kangle规则:.htaccess 文件)



RewriteEngine on
RewriteBase /
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]

把上面这串代码放到网站根目录当中的.htaccess文件当中,刷新网站。果然就算访问http也会强制跳转到https。这时候我以为一切成功了,却没想到,随便打开了一个文章页。却发现地址栏中绿标却不见了,虽然依然是https地址。当时想着,喵了迷的。这是搞什么鬼?然后问了问@keinx,原来是文章页有加载非https资源。果断点击右键查看源代码,发现图片和部分引用的地址都是非https。这可怎么办呢?有问题,问度娘!果断去搜下,真是天不负我啊。真被我找到了。强制图片+https。
代码如下:放到functions.php当中去。


/* 替换图片链接为 https */
function https_image_replacer($content){
	if( is_ssl() ){
		/*已经验证使用 $_SERVER['SERVER_NAME']也可以获取到数据,但是貌似$_SERVER['HTTP_HOST']更好一点*/
		$host_name = $_SERVER['HTTP_HOST'];
		$http_host_name='http://'.$host_name.'/wp-content/uploads';
		$https_host_name='https://'.$host_name.'/wp-content/uploads';
		$content = str_replace($http_host_name, $https_host_name, $content);
	}
	return $content;
}
add_filter('the_content', 'https_image_replacer');

ok成功将图片强制为https了。但是大家可以看到在文章页末尾的作者信息页可都是没有加https的,这可怎么办呢?怎么办?凉拌炒鸡蛋,当然手动改啦。把支付宝打赏图片加了个https,然后那些QQ、微博之类的引用到上篇文章介绍的外链转内链,全部改成内链地址,然后放进去。管他三七二十一。保存,刷新。OK,绿标成功在文章页显示。
然后到群里找团队的人聊天去了,随便跟他们聊,刚好聊到SSL证书的事儿,我就稍微炫耀了一下下,嘿嘿。结果,果然被打脸了。安卓版的谷歌浏览器上出现红叉。我靠,不会吧。这么折腾人的啊?我换证书去,当时想着Let's Encrypt也有免费证书,而且我团队的人也在用,永久免费,还挺吸引人的。去了官网看了看,我去,全是英文。不知道我是英盲吗?赶紧问团队的人要中文教程,简单看了看,我去,这么多?再看一看,算了吧。我也没有VPS,用的虚空。然后还是想着怎么解决红叉的问题去了,百度搜了半天都没搜到有用的。干脆去问沃通的客服,打开沃通官网,果断找技术,问了下情况。原来是这样啊。
在apache里面要使用for apache里面的证书 里面有个配置语句 SSLCertificateChainFile 要把1_root_bunlde.crt文件配置进去。呦西,真是大大的有。找朋友去,呃,结果朋友14号要出差,正在收拾行李。说15号再帮我弄,我还能有啥法,等呗。目前就是这么个情况。对了,@Tokin也就是我这款主题的作者又出新主题了(免费的哦),可以去看看哦,地址是:https://biji.io/