Web开发编程网
分享Web开发相关技术

为wordpress博客部署 HTTPS

SSL 证书类型

如今很多网站都支持 HTTPS 访问了,HTTPS 可以保证用户在访问的过程中信息不会轻易被截获。通常来说,SSL 证书分为三大类,他们的安全性是递增的,当然价格和安全系数成正比。

  • DV (Domain Validation Certificate),DV 证书适合个人网站使用,申请证书时,CA 只验证域名信息。几分钟之内就能签发。个人博客、网站,选择 DV 证书即可;
  • OV ( Organization Validation Certificate),OV 证书需要认证公司的信息。1-2天签发。企业网站,但还不想付费,可以选择 DV 证书; 综合性的企业门户网站,可以选择 OV 证书;
  • EV ( Extended Validation Certificate),EV 证书的认证最为严格,一般会要求提供纸质材料。签发时间也较久。金融、电商企业网站,选择 EV 证书。

免费的 SSL 证书 – Let’s Encrypt

对于我的博客来说,只需要 DV 等级的证书就够了,使用 Let’s Encrypt 就能很好的满足我的需求。Let’s Encrypt 是国外一个公共的免费 SSL 项目,由 Linux 基金会托管,由 Mozilla、思科、Akamai、IdenTrust 和 EFF 等组织发起,目的就是向网站自动签发和管理免费证书,以便加速互联网由 HTTP 过渡到 HTTPS。Let’s Encrypt 的有效期为 90 天,到期后需要续期就可以继续使用了。

如何使用?

因为我的博客使用 Docker 部署在 CentOS 7 上,而 CentOS 7 默认的环境也正好能满足 Let’s Encrypt 对环境的要求。下面我就简单说下如何配置 Let’s Encrypt。

安装 Let’s Encrypt

首先要安装 git

yum install git  

然后 clone Let's Encrypt 到本地,并执行其中的配置脚本:

git clone https://github.com/letsencrypt/letsencrypt  
cd letsencrypt  
./letsencrypt-auto certonly --server https://acme-v01.api.letsencrypt.org/directory --agree-dev-preview

期间会要求输入邮箱和要配置 HTTPS 的域名。完成后会生成证书文件:

    /etc/letsencrypt/live/www.f2ecoder.net/fullchain.pem
    /etc/letsencrypt/live/www.f2ecoder.net/privkey.pem

配置 Nginx

我这里需要配置的比较简单:

server {
        listen 80;
        server_name  www.f2ecoder.net;
        return 301 https://www.f2ecoder.net$request_uri;
}
server
    {
        #listen 80;
        #listen [::]:80;
        listen 443 ssl;
        server_name www.f2ecoder.net;
        index index.html index.htm index.php default.html default.htm default.php;
        root  /home/wwwroot/www.f2ecoder.net;
        ssl_certificate /etc/letsencrypt/live/www.f2ecoder.net/fullchain.pem;
        ssl_certificate_key /etc/letsencrypt/live/www.f2ecoder.net/privkey.pem;
        ssl_ciphers "EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5";
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers on;
        ssl_session_cache shared:SSL:10m;
        include wordpress.conf;

        include other.conf;
        #error_page   404   /404.html;

        # Deny access to PHP files in specific directory
        #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

        include enable-php.conf;

        location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
        {
            expires      30d;
        }

        location ~ .*\.(js|css)?$
        {
            expires      12h;
        }

}

然后重载一下Nginx配置即可。

未经允许不得转载:WEB开发编程网 » 为wordpress博客部署 HTTPS
微信扫码关注微信公众号

WEB开发编程网

谢谢支持,我们一直在努力

安全提示:您正在对WEB开发编程网进行赞赏操作,一但支付,不可返还。