[SiteLog]全站 https 的尝试和MT相应修改

This is a sitelog of Easun.org.

ssltest of easun.org

貌似已经落伍了。。 看见大家的网站已经统统迁移到了 https ,也是,更安全貌似也更流行?

研究了一番,最后也图省事。 干脆在 腾讯云 上申请免费的 DV证书 并下载到自己的服务器完事,其过程乏味无趣,也就一笔略过。
配置完后上 https://www.ssllabs.com/ssltest/ 测试一下。达到 A+ 为宜。

简单的共享一下我的 SSL 配置 (nginx 配置)

nginx  ssl_certificate /etc/nginx/ssl/easun_org.crt;
  ssl_certificate_key /etc/nginx/ssl/easun_org.key;
  ssl on;
  ssl_session_timeout 10m;
  ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
  ssl_ciphers EECDH+CHACHA20:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;

  ssl_prefer_server_ciphers on;
  ssl_session_cache shared:SSL:10m; 

  ssl_dhparam /etc/nginx/ssl/dhparam.pem; 
  add_header Strict-Transport-Security max-age=15552000;

其中配置了 HSTC (HTTP Strict Transport Security) 方便浏览器自动(强制)从 http 切换到 https
启用了强健的 DHE(Diffie Hellman Ephemeral)密钥 dhparam.pem。 其生成方式为:

Bash  openssl dhparam -out /etc/nginx/ssl/dhparam.pem 4096

到此,服务器 https 配置完毕。

接下来是配置跨域。 后台程序让我重新启用新的子域名 https://mt.easun.org, 其他的没有影响, 但是前台评论是通过 ajax 展现的,所以存在一个跨域问题, 而登陆用户的评论还需要传递 cookie
直接发上我的跨域配置片段(nginx)。

nginx    if ($http_origin ~ "(.+\.)?easun.org$") {
    add_header   "Access-Control-Allow-Origin"  $http_origin ;
    add_header   "Access-Control-Allow-Credentials"  "true";
    add_header   "Access-Control-Allow-Methods"  "GET, POST,OPTIONS";
}

测试了一下。可以正常匿名、登陆发送前台评论。

**由于CDN前台的缘故,如果发现不能正常评论,可以 Ctrl+F5 强制刷新前台页面。

另外,随着全站 https 调试,发现了 QQ登陆/GitHub 登陆插件https 前台的一个bug。。。 顺手修复并同步到了 GitHub

参考资料: