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配置即可。