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

标签: certbot, ubuntu

添加新评论