免费生成SSL证书并自动续订和安装证书

本文最后更新于:2023年4月2日 晚上

免费生成SSL证书并自动续订的工具

注意:以下教程在Ubuntu20.04和Ubuntu22.04系统中实施成功,其他系统仅供参考。

一、证书机器人-Certbot

Certbot官网:Certbot (eff.org)

官网内正确选择自己的系统以及自己的网页服务器即可有详细教程。

1、目录验证

使用条件:Web服务要在80端口运行并开放80端口。若不满足此条件请使用其他方法。

1
certbot --[Web服务器的名字]

2、DNS质询

1
certbot --manual --preferred-challenges dns certonly

输入自己的域名,并去自己的DNS仪表按要求添加TXT记录。如果添加后失败,DNS有延迟请多试几次。

3、ACME客户端自动验证

这个我目前还没有没有找到可用的方法,但是网上有相关的资料或文档,请感兴趣的小伙伴自行研究,后期我如果有空再研究实验成功后并更新。

二、acme.sh

官网:acmesh-official/acme.sh: A pure Unix shell script implementing ACME client protocol (github.com)

1、安装

网上的其他的方法可能在国内会失效,例如下面的这个,目前是不可用的

1
curl https://get.acme.sh | sh -s email=my@example.com   #不可用

使用下面的方法即是正常可用的

1
2
3
4
cd   # 这个我为了切换统一目录,不用有什么疑问,防止不同目录会运行出错
apt update
apt install zip
git clone https://github.com/acmesh-official/acme.sh.git

然后添加环境变量

1
vim /etc/profile

在后面写入这行配置

1
export PATH="/root/acme.sh:$PATH"

保存退出,刷新环境变量

1
source /etc/profile

继续安装流程

1
2
3
4
cd ./acme.sh
acme.sh --install -m 你的邮箱
acme.sh --upgrade --auto-upgrade
acme.sh --set-default-ca --server letsencrypt

2、生成证书

方法1:目录验证

方法2:DNS质询

这两个在官网上面直接按要求使用命令即可。

方法3:客户端自动验证

其他平台参考:dnsapi · acmesh-official/acme.sh Wiki (github.com)

注意:这里只以Cloudflare为例。

添加环境变量

1
vim /etc/profile

在后面写入这行配置

1
2
export CF_Key="[你的Cloudflare令牌]"
export CF_Email="[你的Cloud邮箱账号]"

保存退出,刷新环境变量

1
source /etc/profile

直接部署泛域名,省心好用。

1
acme.sh --issue --dns dns_cf -d [你的根域名] -d *.[你的根域名]

三、安装到Web服务器

使用以上两种方法生成的证书,使用下面的文章的方法部署到Web服务器即可。

Web服务器配置参考文档:网页服务器的配置与安装ssl证书 - 开摆工作室博客 (kbai.cc)

直接把生成的证书地址:一般都在这里

1
/root/.acme.sh/[你的域名]_ecc/*

然后把相应的证书安装到自己的Web服务器配置文件中,.key文件默认是密匙选项

Nginx示例

1
2
ssl_certificate /root/.acme.sh/[你的域名]_ecc/[你的域名].cer;
ssl_certificate_key /root/.acme.sh/[你的域名]_ecc/[你的域名].key;

Apache示例

1
2
3
SSLCertificateFile /root/.acme.sh/[你的域名]_ecc/[你的域名].cer
SSLCertificateKeyFile /root/.acme.sh/[你的域名]_ecc/[你的域名].key
SSLCertificateChainFile /root/.acme.sh/[你的域名]_ecc/fullchain.cer

其他服务器

也基本上就是下面这三个证书文件,正确配置即可。

1
2
3
公钥:/root/.acme.sh/[你的域名]_ecc/[你的域名].cer
私钥:/root/.acme.sh/[你的域名]_ecc/[你的域名].key
中间证书:/root/.acme.sh/[你的域名]_ecc/fullchain.cer

📣特别声明

此文章全部都是依靠自己的学习理解来写的原创文章,难免可能会出现有错误的地方,

如果大家以后阅读的时候发现有问题,那就麻烦到下方评论区来进行错误指出,使错误尽快做出改正,

在此,感谢大家的阅读与支持!🤝💦🎉

🍻支持一下

觉得我写的好的话可以支持一下我哦~持续关注我,会更新其他好玩且实用的项目。

👋如果我能帮助到你,那就请我喝杯🧋呗~👇👇👇