使用let's encrypt代替阿里云免费证书
去年11月底开始着手使用https来代替http,提升安全性,同时也能避免网络运营商的广告。因为用的阿里云的全家桶(ECS+域名+CDN+OSS+直播等),正好看到阿里云上有免费的SSL证书,虽然有一年的期限,但想着先上了再说,一年之后,也许就全免费了呢。这一年期间,使用阿里云的免费证书也是各种坑,首先不知道每个账户只有20个(去年这个时候是连说明都没有的,不留工单问,没人知道),就一个劲的申请,结果浪费了很多(好像是说审核关闭的,还是吊销的,也占用1个指标,我去)。
今年9月份的时候,微信公众号端又要开发一些东西,就新搭了服务器,但是不想去折腾阿里云的免费SSL证书了。正好,let's的免费证书的工具也比去年有更新,很多浏览器都支持了,据说明年还支持泛域名,所以,就考虑用这个啦。至于其他的签发商更安全啊,更有名啊,更屌B啊,比如说加密算法之类更牛啊等,这些就不考虑了,反正let's的目前完全够用了,又不是天天有几百万的资金通过项目流动(流汗)。至于let's一次签发90天的问题,一个crontab就解决。
1)安装let's(基于centos,其他系统大同小异)
yum install epel-release
cd /data/certificate
wget https://dl.eff.org/certbot-auto --no-check-certificate
chmod +x ./certbot-auto
./certbot-auto -n
说明,./certbot-auto -n只是用来安装依赖包的,也可以跳过直接到下面的生成证书的步骤,国内VPS或服务器上使用的话建议先修改为国内的pip源。
2)生成证书
首先要将相应的域名,解析到服务器。(如本例中的www.chen.net)
单域名生成证书:
./certbot-auto certonly --email email@email.com --agree-tos --no-eff-email --webroot -w /data/web/www -d www.chen.net
多域名单目录生成单证书:(即一个网站多个域名使用同一个证书)
./certbot-auto certonly --email email@email.com --agree-tos --no-eff-email --webroot -w /data/web/www -d www.chen.net -d help.chen.net
多域名多目录生成一个证书:(即一次生成多个域名的一个证书)
./certbot-auto certonly --email email@email.com --agree-tos --no-eff-email --webroot -w /data/web/www -d www.chen.net -d help.chen.net -w /data/wwwroot/web -d www.chen.cn -d chen.cn
3)结果
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at
/etc/letsencrypt/live/www.chen.net/fullchain.pem. Your cert will
expire on 2018-02-15. To obtain a new or tweaked version of this
certificate in the future, simply run certbot-auto again. To
non-interactively renew *all* of your certificates, run
"certbot-auto renew"
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
就是生成成功。
4)配置nginx
注意图中红色部分,请使用 fullchain.pem(不是chain.epm),替换掉原来阿里云下载的pem,否则的话,在安卓端,会出现打开空白的问题。
5)配置crontab
* * * */1 * /data/certificate/certbot-auto renew --disable-hook-validation
6)在阿里云上,OSS和CDN的配置上,选择直接输入证书内容替换原来直接选择的阿里云证书,就可以了。
注意事项:
1、因为默认环境是不允许访问以"."开头的隐藏文件及目录的,所以访问http://abc.com/.well-known/acme-challenge/**** 这个链接的话返回403错误,所以必须要将对应虚拟主机配置文件里的
location ~ /\.
{
deny all;
}
这段配置删掉或注释掉或在这段配置前面加上
location ~ /.well-known {
allow all;
}
以上配置代码,然后重启nginx。
posted on 2017-11-16 15:49 jacky_chen 阅读(7446) 评论(0) 编辑 收藏 举报