这是一场不对称战争。
  梦.:如此短暂已经开始尝试启用SSL支持,现在https://www.briefdream.com已经基本上能用了(登录才会体现),不过有部分插件没有考虑https的问题,还是会给出http开头的地址。
  使用的是StartCom签发的证书,IE 7.0.5730.13、Chrome 3.0.195.25、Firefox 3.5.7已经通过,Opera 10.01没有通过。Lighttpd的配置方法可以参考Howto: Linux Lighttpd SSL (Secure Server Layer) Https Configuration And Installation,证书的炮制方法见《全球可信并且唯一免费的HTTPS(SSL)证书颁发机构:StartSSL》HOWTO: Certificate installation instructions for Lighttpd。需要注意的只有,pemfile是由key和crt组成的;ca-file指的是startcom的根证书,这里是由ca.pem和sub.class1.server.ca.pem组成的。
  WordPress本来也没有考虑https的问题,把下面这个补丁加在主题的function.php里面能够极大的改善这种情况——改写option_siteurl和option_home能使得绝大多数插件和主题在访客用https方法访问的时候,返回https开头的地址。

1
2
3
4
5
6
7
8
9
10
11
// Fix the URL root for SSL
function fix_ssl_siteurl($url) {
	$scheme = (is_ssl() ? 'https' : 'http');
	if(0 === strpos($url, 'http')) {
		if(is_ssl())
			$url = str_replace('http://', "{$scheme}://", $url);
	}
	return $url;
}
add_filter('option_siteurl', fix_ssl_siteurl);
add_filter('option_home', fix_ssl_siteurl);

  启用了备用域名d.ream.tkwww.briefdream.tk,不过这两个域名上的https还没有搞定。上面那段代码可以把http://www.briefdream.com改写成https://www.briefdream.com,却不能把http://d.ream.tk改写成https://d.ream.tk,真是奇怪。想令WordPress同时绑定多个域名,可以把下面的代码加入wp-config.php里。在Settings->Miscellaneous里设置Full URL path to files可以令WordPress的编辑器在插入图片等附件时插入相对URI而不是完整的绝对URI。

1
2
define('WP_HOME', 'http://'.$_SERVER['HTTP_HOST']);
define('WP_SITEURL', 'http://'.$_SERVER['HTTP_HOST']);