Ubuntu 使用Let's encrypt(certbot)申请单域名/泛域名证书
Ubuntu 使用Let's encrypt(certbot)申请单域名/泛域名证书
系统环境:
Ubuntu22.04
一、Certbot安装
1.apt安装certbot
sudo apt install certbot
这里我不推荐使用apt安装certbot,一方面apt上的certbot版本比较老,缺少一些特性,比如无法申请ECC证书,另一方面官方文档使用的snap安装方式,版本最新,单域名还支持自动续期。
2.snap安装certbot
- a.已安装更新snapd至最新
sudo snap install core
sudo snap refresh core
- b.未安装使用以下命令安装snapd
sudo apt update
sudo apt install snapd
sudo snap install core
- c.卸载之前apt安装的certbot包
sudo apt purge certbot
- d.使用snap安装certbot
sudo snap install --classic certbot
二、Certbot基础使用方法
1.单命令自动检测网站域名,获取证书安装并启用https
这条命令只支持单域名
服务器上使用nginx的可以直接运行以下命令,apache同理,只需将 --nginx替换成 --apache
sudo certbot --nginx
2.从nginx配置文件中获取域名但不对nginx做任何设置,只获取证书
apache自行替换
sudo certbot certonly --nginx
3.不自动从http服务器配置文件获取域名,手动指定域名获取证书
sudo certbot certonly -d awolon.fun
4.测试自动更新证书功能是否正常
sudo certbot renew --dry-run
certbot在以下目录新建自动更新脚本,你也可以自行检查
/etc/crontab/
/etc/cron./
systemctl list-timers
三、泛域名申请
let's encrypt 的certbot现无法直接使用自动选项申请泛域名证书,只能使用手动申请指令,而且手动申请的泛域名证书无法自动被续期,需要在快过期之前再次执行相同的命令来实现续期
使用以下命令手动申请泛域名证书,域名自行替换
正常在域名解析处填写txt解析后返回验证就可以成功生成证书
certbot certonly -d *.awolon.fun --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory
2022/7/23 更新
如何申请ECC证书
有两种方法可以申请
修改certbot配置文件,使未来所有申请,更新的证书都采用ecc,而且兼容自动更新功能
使用certonly 仅获取证书文件单命令,这种方法可以适用于单域名和通配符域名
1.修改配置文件
等待补充
2.单命令
单命令比较简单,只需依照上方基础用法中不自动从http服务器配置文件获取域名,手动指定域名获取证书的命令,在命令后添加--key-type选项,并指定其类型为ecdsa即可
以下为单域名申请ecc证书,通配符证书同理
sudo certbot certonly -d awolon.fun --key-type ecdsa
文章作者:四文鱼Max
本文链接:https://blog.awolon.fun/archives/get-cert-from-letsencrypt.html
许可协议:CC BY-SA 4.0