linux

letsencrypt 生成泛域名证书 - get wildcard certificates with letsencrypt

letsencrypt 可谓是穷人福音啊,一个 https 证书动辄数千,泛域名就更贵了,而前不久 letsencrypt 支持了泛域名,不过不支持三级泛域名,比如 *.kpromise.top 并不能匹配 cdn.blog.kpromise.top ,但是你可以一个证书同时包含多个泛域名,比如同时包含 *.kpromise.top、*.blog.kpromise.top 等等。本文从安装 letsencrypt 开始,记录我某次证书更新。

安装 letsencrypt

这部分可以参考:https://certbot.eff.org/docs/install.html ,具体也可以参考如下:

wget https://dl.eff.org/certbot-auto
chmod a+x ./certbot-auto

使用certbot-auto 生成泛域名

具体命令如下:

./certbot-auto certonly -d *.ssyer.com --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory

这里你可以使用多个 -d 比如  -d *.ssyer.com -d *.cdn.ssyer.com  第一次运行会安装依赖,遇到的问题有:OSError: Command /opt/eff.org/certbot/venv/bin/python2.7 - setuptools pkg_resources pip wheel failed with error code 2

这个问题是由于版本太旧,可通过如下命令解决:

pip install setuptools
pip install --upgrade setuptools
pip install virtualenv
pip install --upgrade virtualenv

如果出现 setuptools pkg_resources pip wheel failed with error code 1  可参考  https://github.com/certbot/certbot/issues/2883

接着会要求你添加一条txt解析: _acme-challenge.ssyer.com ,你添加后 通过 dig _acme-challenge.ssyer.com txt 命令查看是否生效,生效后按 enter 即可。

复制证书到阿里云杭州服务器,我写了coyp_letsencrypt 脚本:

cd /etc/
zip -r letsencrypt.zip letsencrypt
scp letsencrypt.zip root@120.27.221.225:/etc/
rm letsencrypt.zip
ssh -v root@120.27.221.225

然后在杭州的服务器上写了 letsencrypt 脚本:

cd /etc/
rm -rf letsencrypt
unzip letsencrypt.zip
rm -rf letsencrypt.zip
nginx -s reload

更新或者生成证书的流程变为了先执行  ./certbot-auto certonly -d *** 生成或更新证书,接着执行  ./coyp_letsencrypt ,接着执行 ./letsencrypt 即可顺利完成啦。

full-stack-trip

Share
Published by
full-stack-trip

Recent Posts

Android 自定义 View 入门

说来惭愧,工作数年,连基本的自…

4 年 ago

retrofit 同时支持 xml 和 json

retrofit 解析 jso…

4 年 ago

mysql - 存储过程 从入门到放弃

最近有个报表的需求,于是乎用了…

4 年 ago

奶嘴战略 - 你不得不知道的扎心真相(一)

一句:英雄枯骨无人问,戏子家事…

4 年 ago

acme.sh 的简单使用

acme.sh 是纯 shel…

4 年 ago

wrk -更现代化的http压测工具

wrk 是一款更现代化的 ht…

4 年 ago