简介:

  理论上,我们自己也可以手动制作一个 SSL 安全证书,但是我们自己签发的安全证书浏览器信任,所以我们需要被信任的证书授权中心( CA )签发的安全证书。而一般的 SSL 安全证书签发服务都需要付费,且价格昂贵,不过为了加快推广 https 的普及, EEF 电子前哨基金会、 Mozilla 基金会和美国密歇根大学成立了一个公益组织叫 ISRG ( Internet Security Research Group ),这个组织从 2015 年开始推出了 Let’s Encrypt 免费证书。这个免费证书不仅免费,而且还相当好用,所以我们就可以利用 Let’s Encrypt 提供的免费证书部署 https 了。

certbot 官网网站

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记录

ubuntu certbot 生成免费泛域名证书-冯金伟博客园

加入过后,可通过些命令查看是否解析成功

windows

nslookup -qt=TXT _acme-challenge.xx.com

ubuntu

nslookup  回车

set querytype=TXT  回车
_acme-challenge.xx.com 回车

另外经测试使用云加速的DNS解析域名无法生成成功,本人使用新网的DNS生成成功

ubuntu certbot 生成免费泛域名证书-冯金伟博客园

证书生成成功

证书有效期为3个月左右,需要手动续期

ubuntu certbot 生成免费泛域名证书-冯金伟博客园

由于我们之前网站是 刚生成的 Let’s Encrypt 证书,到4月30日才到期。现在去 renew 太早了,Certbot 直接把我们给否了。

查看生成证书生成的配置信息

cd  /etc/letsencrypt/renewal

vim xx.conf

  

ubuntu certbot 生成免费泛域名证书-冯金伟博客园

#手动测试,查看证书过期时间
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