开启全站HTTPS时代

终于用上了StartSSL的免费域名了。这个第一年是免费的。那第二年就继续申请一下了只能。 StartSSL申请的时候还挺逗,没有用户名密码的,只是在你的本机安装了一个key。剩下就是用csr来申请证书了。 接下来就是nginx的配置了。crt和key都是人家给你生成好的。 dhparams.pem是在本机进行生成的。还有要注意一些header的设置。经过这样设置后,我的网站ssllabs检测都是A+水平了。 ssl

1
openssl dhparam -out dhparams.pem 4096 
1
2
3
4
5
6
7
8
9
10
11
12
ssl_certificate      /etc/nginx/conf/ssl/mirages.dev.crt;
ssl_certificate_key  /etc/nginx/conf/ssl/mirages.dev.key;
ssl_dhparam          /etc/nginx/conf/ssl/dhparams.pem;
ssl_ciphers          ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:AES128-GCM-SHA256:AES256-GCM-SHA384:DES-CBC3-SHA;
ssl_prefer_server_ciphers  on;
ssl_protocols        TLSv1 TLSv1.1 TLSv1.2;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header  Strict-Transport-Security  "max-age=31536000";
add_header  X-Frame-Options  deny;
add_header  X-Content-Type-Options  nosniff;
add_header  Content-Security-Policy  "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' img-src 'self' data: https://www.google-analytics.com; style-src 'self' 'unsafe-inline'";

但是访问的时候虽然做了301把http转为https,但是之前那些图片都是http的,所以浏览器还是会出现黄色警告。所以要把里面的图片地址也都转为https。 下面这个就是修改我的主题里的functions.php文件在最后添加如下内容:

1
/* 替换图片链接为 https */ function content_to_https($content){ if( is_ssl() ){ $content = str_replace('https://images.timoq.com', 'https://images.timoq.com', $content); } return $content; } add_filter('the_content', 'content_to_https');