wordpress 博客全站https

为什么要用https

为了防止中间人攻击, 为了右下角不出现黄色广告, 为了带来更多的读者…, 网络环境越来越复杂, 各种运营商劫持已经使得我们不得不使用https来保障数据的安全. 公司网站已经全部https化, 我们个人博客亦不能拉下.

let’s encrypt

要加密, 那就得有证书, let’s encrypt 基本上是免费证书里面做得最好的了, 并且得到了chrome, mozilla, ie等主流浏览器的认可. let’s encrypt 的自动续签功能, 只要一次配置好之后, 以后都不用担心过期的问题了.

生成证书

certbot提供了一套脚本帮助我们生成证书, 并且支持多域名, 这里简单的演示一下, 详细的请访问官网

certbot certonly --standalone -d example.com -d www.example.com

自动续签

certbot renew --dry-run

修改nginx配置

首先80的端口的http访问应该全部转成https

server {                                               
    listen       80;                                   
    server_name example.com www.example.com;               
    #charset koi8-r;                                   
    if ($server_port = 80) {                           
         rewrite ^http://$host https://$host permanent;
         rewrite ^(.*)$ https://$host$1 permanent;     

    }                                                  
}                                                      

打开443端口, 并加入证书

server {                                                                      
    listen       443 ssl;                                                     

    server_name example.com www.example.com;                                                    
    ssl_certificate     /etc/letsencrypt/live/example.com/fullchain.pem;        
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;          
    #charset koi8-r;                                                          

    #access_log  logs/host.access.log  main;                                  
    root /var/www/wordpress/;                                                 
    index index.php index.html;                                               

    location / {                                                              
        # try_files $uri $uri/ =404;                                          
        try_files $uri $uri/ /index.php?q=$uri&$args;                         
    }                                                                         

    location ~ \.php$ {                                                       
        fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;                    
        fastcgi_index  index.php;                                             
        fastcgi_param  SCRIPT_FILENAME  $document_root/$fastcgi_script_name;  
        include        fastcgi_params;                                        
    }                                                                         
}                                                                             

证书生成之后的目录在/etc/letsencrypt/live/your-domain/

重启nginx, 如果没有意外我们的网站就应该有绿色小图标了.

修改网站链接

设置里面的网站链接, 要改成https的, 否则一些静态资源依然会是http.

七牛服务转https

一般为了加速, 我们都会使用七牛的静态资源云存储, 如果使用了, 记得要改为使用https地址.

Gravatar https

Gravatar 目测是使用http的链接, 要改为https的链接得使用一个插件WP Gravatar Https.

一些文章的图片

如果一些文章里面使用了http链接的图片, 得自己一个个去改了, 不过这个问题不大.

总结

目测这样一番改动之后, 整个博客就都是https的链接了, 小绿图标看着真开心!

Good Luck!

发表评论

电子邮件地址不会被公开。 必填项已用*标注