简介:
理论上,我们自己也可以手动制作一个 SSL 安全证书,但是我们自己签发的安全证书浏览器信任,所以我们需要被信任的证书授权中心( CA )签发的安全证书。而一般的 SSL 安全证书签发服务都需要付费,且价格昂贵,不过为了加快推广 https 的普及, EEF 电子前哨基金会、 Mozilla 基金会和美国密歇根大学成立了一个公益组织叫 ISRG ( Internet Security Research Group ),这个组织从 2015 年开始推出了 Let’s Encrypt 免费证书。这个免费证书不仅免费,而且还相当好用,所以我们就可以利用 Let’s Encrypt 提供的免费证书部署 https 了。
ubuntu系统操作
使用之前:请更新ubuntu镜像源
推荐阿巴巴:https://developer.aliyun.com/mirror
mv /etc/apt/sources.list /etc/apt/sources.list.back vi /etc/apt/sources.list
使用以命令,复制阿里云的镜像源到此文件即可
安装certbot
add-apt-repository ppa:certbot/certbot apt update apt install certbot
可使用查看版本命令是否成功
certbot --version
生成SSL证书
certbot certonly --preferred-challenges dns --manual -d *.baidu.com --server https://acme-v02.api.letsencrypt.org/directory
参数:
–preferred-challenges dns: 认证方式选择DNS, 泛域名支持DNS
–manual: 手动验证模式
-d *.baidu.com: 就是要申请的泛域名了
–server https://acme-v02.api.letsencrypt.org/directory: 泛域名证书是新功能, 如果要使用就得加上这个参数
生成时根据提示,在你的域名下加入TXT记录
加入过后,可通过些命令查看是否解析成功
windows
nslookup -qt=TXT _acme-challenge.xx.com
ubuntu
nslookup 回车 set querytype=TXT 回车
_acme-challenge.xx.com 回车
另外经测试使用云加速的DNS解析域名无法生成成功,本人使用新网的DNS生成成功
证书生成成功
证书有效期为3个月左右,需要手动续期
由于我们之前网站是 刚生成的 Let’s Encrypt 证书,到4月30日才到期。现在去 renew 太早了,Certbot 直接把我们给否了。
查看生成证书生成的配置信息
cd /etc/letsencrypt/renewal vim xx.conf
#手动测试,查看证书过期时间 certbot renew #忽略证书过期时间,直接重置证书时间 certbot renew --force-renewal
如果需要在IIS上使用需要转换一次 PEM 格式转为 PFX 格式
openssl pkcs12 -export -out baidu_combined.pfx -in fullchain.pem -inkey privkey.pem
在docker 中生成证书
sudo docker run -it --rm --name certbot -v "/etc/letsencrypt:/etc/letsencrypt" -v "/var/lib/letsencrypt:/var/lib/letsencrypt" certbot/certbot certonly --preferred-challenges dns --manual -d *.baidu.com --server https://acme-v02.api.letsencrypt.org/directory