开启方法: https://certbot.eff.org/
发现的几个问题:
- 页面中有一些google的资源,国内用户会访问不到,然后页面加载就会很慢
- 页面中有一些图片写的是http的绝对地址,使得https访问时,页面中加载了http的资源,显得很不漂亮
- 让自己的的blog支持http2
- https的时候登录不能成功
这里的证书是3个月的有效期,马上要到期了,根据官方提供的脚本,自动更新证书的时候需要(虽然是自动的)重新安装python(而且是编译安装),结果失败了,解决办法: 官方给了一种docker的申请方式:
https://certbot.eff.org/docs/install.html#certbot-auto
如下:
1 2 3 4 5 6 |
#!/bin/bash docker run --rm -p 80:80 -p 443:443 \ -v /etc/letsencrypt:/etc/letsencrypt \ quay.io/letsencrypt/letsencrypt auth \ --standalone -m phpor@phpor.net --agree-tos \ -d phpor.net -d www.phpor.net -d blog.phpor.net |
由于国内下载docker镜像很慢,可以直接在国外的机器上完成上述操作,然后,把申请好的证书拿回来配置(这样也比去某些网站申请证书来的方便的多),注意,需要把申请证书的域名解析到这个docker的机器的IP上,验证域名要用。
为了方便下次使用,还是把这个docker容器下载到国内,放在自己博客的机器上,下次就不需要修改域名解析了
写个cron自动续签证书:
1 2 3 4 5 6 7 8 9 10 |
#!/bin/bash domain="phpor.net" now=$(date "+%s") e=$(LANG=C curl https://$domain -v 2>&1 >/dev/null |grep expire|awk -F": " '{print $2}') expire=$(date "+%s" -d "$e") left=$((expire-now)) if [[ "$left" -lt $(( 2 * 86400 )) ]]; then /data1/www/auto_apply.sh /usr/local/openresty/nginx/sbin/nginx -s reload fi |
提前两天自动续签证书
目前certbot还不支持 通配符 证书的申请 (https://certbot.eff.org/faq/#will-let-s-encrypt-issue-wildcard-certificates)
根据证书颁发的方式的不同,证书的级别也有不同,从低到高依次为: DV、OV、EV:
DV ( Domain Validation):只验证域名(这个很简单)
OV (Organization Validation): 验证域名和组织
EV(Extended Validation): 验证流程更严格
目前certbot还没有计划推出EV型证书(https://certbot.eff.org/faq/#will-certbot-issue-extended-validation-ev-certificates)
关于申请证书频繁程度是限制: https://letsencrypt.org/docs/rate-limits/