为博客启用https支持

2016.06.21/2016.07.27发布于日常暂无评论/目录

妈妈再也不用担心无良运营商给俺的网站插播广告了 :)

随着阿里云cdn对https的支持和let's encrypt的公测,为博客启用https支持已经变得十分简单。

创建letsencrypt证书

参考certbot网站的教程,安装好certbot。如果是debian8的话,jessie-backports里有打包好的,可以直接用。

ubuntu的话,需要用certbot-auto脚本安装,此时certbot会被安装到~/.local/share/letsencrypt目录,不过直接用certbot-auto脚本即可。

然后以本站为例运行:

sudo ./certbot-auto certonly --webroot \
                             -w /var/www/blog \
                             -d mawenbao.com \
                             -d www.mawenbao.com \
                             -d blog.mawenbao.com \
                             -w /var/www/app \
                             -d app.mawenbao.com \
                             -w /var/www/static \
                             -d static.mawenbao.com

letsencrypt创建证书时需要注意:

  1. 证书不支持带通配符的域名,比如*.mawenbao.com这种,但是可以包含多个域名,目前(2016.07.03)上限是100个
  2. 由于letsencrypt对自己的证书服务有诸多限制,例如一周之内同一个域名只能签发20个证书(2016.07.03),所以用certbot申请证书前可以先加上--dry-run参数来模拟下申请过程,如果没问题再去掉--dry-run
  3. 证书的有效期是90天,没法修改。不过letsencrypt的目的是自动renew,问题也不是很大。每次申请新证书后,为了自动renew的时候不出差错,可以先certbot renew --dry-run看看有无问题。
  4. 如果使用nginx的话,为防止有的浏览器因为缺少letsencrypt的中间证书而不认我们自己创建的证书,ssl_certificate可以直接使用fullchain.pem(cert.pem+letsencrypt intermediate cert),而不是cert.pem。

阿里云CDN配置

配置 CDN => CDN域名列表 => [static.mawenbao.com] => HTTPS安全加速 (启用),证书内容填fullchain.pem的内容(理由见上),私钥填privkey.pem的内容。

certbot常用命令

revoke证书

sudo ./certbot-auto revoke --cert-path \
         /etc/letsencrypt/live/mawenbao.com/cert.pem

renew所有证书

sudo ./certbot-auto renew

查看证书信息

sudo cat /etc/letsencrypt/live/mawenbao.com/cert.pem | \
     openssl x509 -text -noout
#https#site-admin#电子证书

评论