https跳转

因为PHP和Apache的mod_rewrite跳转设置后都提示无限重定向循环,就用了Javascript来做这件事:

<script type="text/javascript">
var targetProtocol = "https:";
if (window.location.protocol != targetProtocol)
  window.location.href = targetProtocol +
    window.location.href.substring(window.location.protocol.length);
</script>

放在body标签里会在加载页面时立即执行

比如点击https://hiiht.com,就会直接重定向至相应的https页面,如果想https跳转http,targetProtocol的值改成http即可。

SSL证书部署

因为阿里云有免费的SSL证书,就直接申请了,服务商是Symantec(赛门铁克),可靠性还是有保障的,因为博客本身也不牵扯用户数据的交换,所以免费的暂时也就够用。
当你能看到浏览器地址栏的那把小锁,那就说明我部署成功了,下面来详细说下步骤:
域名验证的部分就直接跳过了,阿里云的话只要在服务器指定目录上传一个htm验证下就通过了;
然后是配置远端的OpenSSL(下面是两种可供选择的方式):
①直接下载:

wget http://www.openssl.org/source/openssl-0.9.8a.tar.gz
./configure --prefix=/usr/local/openssl
make
sudo make install

②apt安装:

sudo apt-get install openssl libssl-dev

安装完成后输入:

admin@localhost:~$ openssl
OpenSSL>
如果出现上面的提示,那就是成功安装了

第二步:
加载Apache的SSL模块,第一次加载会提示重启

sudo a2enmod ssl

第三步:
安装证书,加载完SSL模块之后,/etc/apache2/sites-available目录下会生成一个default-ssl.conf文件,用vi编辑器打开:

sudo vi /etc/apache2/sites-available/default-ssl.conf

默认域名替换成自己的域名

<IfModule mod_ssl.c>
        <VirtualHost hiiht.com:443>
                ServerAdmin [email protected]
                ServerName hiiht.com

SSLCertificateFile(你的证书文件位置)

SSLCertificateKeyFile(你的证书key位置)

SSLCertificateChainFile(默认是注释掉的,我也没有添加它,暂时保留,可以参考这里)
更改完成后:wq保存退出
第四步:
映射default-ssl.conf:

sudo ln -s /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-enabled/001-ssl.conf

最后:

#重新加载Apache2配置文件
sudo /etc/init.d/apache2 force-reload

#重启Apache2服务
sudo /etc/init.d/apache2 restart

如果服务器已经开放了443端口,这个时候就已经可以访问 https://你的域名.com 了,能显示内容就证明成功了,具体不安全控件之类的还需后续再调整。

启发自→这里

Apache模拟域名转向

在写Blog之前,二级域名www解析给了我的一个导航首页,因为之前万恶的阿里云不能解析根域名(说是和MX记录冲突),所以才使用了www,现在解放了,可以“随心而动”了……

扯回正题,现在的主流网站基本都使用裸域名,但是中国人的传统习惯是输网址直接输“www”然后加域名,早些年流行的“www”现在却渐渐没有价值了。目前使用的A记录解析根域名和www到服务器IP,今天因为更换了DNS解析,所以就顺便把这个域名转向功能实现了(前提你用的是Apache,而不是IIS),设置起来很无脑,修改下.htaccess进行转向就可以了:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.hiiht.com [NC]
RewriteRule ^(.*)$ https://hiiht.com$1 [R=301,L]

这样所有的www.hiiht.com的访问请求,都会被自动中转到hiiht.com。

补充一句:.htaccess在网站的根目录下,默认其实是隐藏的,可以尝试用

ls -all -h

看看目录里有没有,如果没有就直接新建一个好了。