网站全面升级HTTPS协议
3月22日更新
谷歌爸爸升级Chrome后,证书StartCom被拉黑了,无法访问。
12月7日更新
果然StartCom基本算不行了,每一家都不认可。今天刚好给公司的服务器配置SSL的时候,发现有一家厂子的SSL挺便宜的,4刀一年,遂入手三年。+-+;
基本配置和下面一样,这一家买的时候,你的Private Key是直接发送到邮箱的,所以需要用scp命令自己传送到服务器去。
配置成功的话可以通过下面命令测试下有效性:
nginx -t -c /your nginx config.conf
若测试通过的话,重启一下Nginx,就基本完成了。
可以把之前的Http的80端口监听做一下处理。
server {
listen 80;
server\_name xxx.com;
rewrite ^/(.\*) https://xxx.com$1 permanent;
}
这样基本就OK了。
正文
最近看了阿里安全的一篇文章全球HTTPS时代已来,你跟上了吗?写的很浅显易懂,想了想也趁此机会去把自己Blog更新成HTTPS的吧,对于淘汰旧的技术,我一向都是超级支持的。
当然第一步就是证书了,这里StartSSL可以注册,免费一年,可以无限续期。这个网站注册很有意思,用一次性密码登录过后,可以下载你对应的证书,安装在浏览器中,之后就可以使用了。登录到他们的后台,选择「Validations Wizard」把自己的域名添加进去就可以了。
在选择「Certificates Wizard」中填入CSR,这个CSR可以直接在Vps主机里面用命令生成:
openssl genrsa -out domon.pem 2048
openssl req -new -key domon.pem -out domon.csr
接着下一步,会下载下来StartSSL免费的SSL包,里面对应了常用的几种Web环境:N、A、IIS。
注意:Apache的证书是两个,需要把Root里面的复制到域名crt文件中。简单的方法就是直接使用Nginx目录下面的。
完了后,把这个crt文件上传到Vps当中,修改下配置文件,下面以Nginx为例:
-
修改 listen 80 —> listen 443 ssl
-
添加 ssl_certificate 下载后的crt文件
-
添加 ssl_certificate_key 生成的key文件
-
注意:每一行都需以分号结尾
listen 443 ssl; server_name www.domon.cn; index index.html index.htm index.php; root xxx; ssl_certificate xxx/domon.crt; ssl_certificate_key xxx/domon.key ;
确认无误的话,就可以重启下Nginx的服务,就可以带s的访问自己的主站了。
service nginx restart
后记
Chrome对于Https要求很高,在刚弄玩站的时候,我这里一直红色感叹号:
-
由于我用的是Typecho,所以需要在他的配置文件config.inc.php中加入这样一行,开启Https资源
/** 开启HTTPS */
define('TYPECHO_SECURE',true); -
修改当前主题下面的评论comments.php
$this->commentUrl(),将其替换为:echo str_replace("http","https",$this->commentUrl()); -
发现我加的Cnzz统计是http的,我也将其替换成https的。
但是最终还有一个东西,我的图片资源是借用了下Orrindeng的域名,这酸爽,先把引用的这个图片删除了去就行了。
有时间在用个新的域名绑定下七牛的Https访问就好了。