飞鱼

恭喜你发现了一个菜鸡博主。

如何使用 certbot 申请 RSA/ECC 证书

飞鱼 2020年03月02日 11:15:35

certbot 是一款可以自动申请 Let's Encrypt 免费SSL证书的工具。

操作环境 Debian 10

# 安装 certbot
apt update
apt install certbot

快速申请 RSA 证书

本操作需要在服务器上执行

# 关闭占用 80 端口的程序
# 自动申请证书向导
certbot certonly --standalone
# 域名需要绑定到服务器IP
# 多个域名请使用空格分开 不支持泛解析

使用自动向导申请的证书,可以在证书即将到期时,很方便的进行自动续签。

执行完成后,证书和相关文件已保存在:

/usr/local/etc/letsencrypt/live/yourdomain.com 目录下

通常我们需要用到的是:

fullchain.pem	# 完整的证书链
privkey.pem		# 私钥

制作 ECC 证书

本操作可以不绑定域名,不在服务器上执行

但需要通过 DNS 的 TXT 记录验证

# 建立专用目录
cd /home
mkdir ssl
cd ssl
mkdir feiyu.me
cd feiyu.me
rm *.*

# 生成私钥
openssl ecparam -genkey -name prime256v1 | openssl ec -out key.pem
# 私钥 name 可选项还有 secp384r1 但通常认为 256位 已足够安全

# 制作单域名的 csr (不推荐)
openssl req -new -sha256 -key key.pem -out my.csr

# 制作带有 SAN 扩展的 csr
# C=国家或地区缩写/ST=省份/L=市/O=公司名/OU=部门名称/CN=主域名
# DNS 可以设置多个域名 请根据自己的情况进行修改
openssl req -new -sha256 -key key.pem -subj "/C=CN/ST=Zhejiang/L=Jinhua/O=Company/OU=Department/CN=feiyu.me" -reqexts SAN -config <(cat /etc/ssl/openssl.cnf <(printf "[SAN]\nsubjectAltName=DNS:feiyu.me,DNS:*.feiyu.me")) -out my.csr

# 申请证书
certbot certonly -d feiyu.me -d *.feiyu.me --csr my.csr --manual --preferred-challenges dns --server https://acme-v02.api.letsencrypt.org/directory

# 更名
mv 0001_chain.pem fullchain.pem

ECC 证书及密钥 已保存在

/home/ssl/feiyu.me 目录下

fullchain.pem	# 完整的证书链
key.pem		# 私钥

写在最后

虽然现在很多网站上都可以简单、快速的申请 SSL证书,但是,如果可以的话,私钥文件还是由自己生成,自己保管比较好。

当然,对于不喜欢折腾的同学来说,caddy 也许是一个更好的选择。


© 2020 飞鱼的博客