Linux 利用 Cloudflare API 配置 acme.sh 自动续签 SSL (Apache、Nginx适用)

简介: 安装acme.sh工具,命令为`curl https://get.acme.sh | sh -s email=你的邮箱`。接着配置Cloudflare API,创建并记录API令牌及Zone ID。最后通过`acme.sh --issue -d 你的域名 --dns dns_cf`签发SSL证书,对于Nginx可使用`acme.sh --install-cert`命令安装证书,并设置自动重载Nginx服务。

前几天为了弄 Overleaf 的 Nginx 反向代理所以折腾了一下 SSL 自动续签,关于 Overleaf 的搭建配置可以参考 《Linux 快速搭建 Overleaf 5.0 附中文字体及完整 TexLive 安装教程(2024最新版)》

安装 acme.sh

我们可以通过在终端输入以下指令安装 acme.sh

curl https://get.acme.sh | sh -s email=你的邮箱

安装完成后 acme.sh 将会自动加入到 crontab 之后以便执行自动续签,并且配置好指令。之后我们需要先退出终端并且重新登录。

配置 Cloudflare API

安装好 acme.sh 之后我们接下来要配置我们的 Cloudflare API 信息,我们首先登录我们的 Cloudflare 账号,点击右上角的用户头像进入到【我的个人资料】页面,并且在左侧导航栏中选择【API 令牌】进入令牌页面,在页面中选择【创建令牌】。

创建令牌的时候,我们可以直接使用 Cloudflare 提供的模板,我们选择【编辑区域 DNS】模板,并且在页面中区域资源的部分选择我们要签发 SSL 的域名,然后设置【TTL】为一个较长的时间避免需要我们频繁更新。

最后我们把令牌记录好,这样我们的令牌就创建成功了。创建成功后,我们还需要记录以下我们域名的 Zone ID,我们进入我们域名的管理页面,在【概述】页面的右侧资讯栏中找到 【Zone ID】并且记录好。

记录好令牌以及 Zone ID 之后,我们进入我们的终端并且运行指令:

export CF_Token="你的令牌"
export CF_Zone_ID="你的 Zone ID"

即配置成功,此时不要退出中断,否则再次进入时需要重新配置!

签发 SSL 并且安装

我们可以运行以下指令对域名进行 SSL 签发:

acme.sh --issue -d 你要签发SSL的域名 --dns  dns_cf

比如我要对 exmaple.com 域名下的 test.example.com 签发域名,则运行:

acme.sh --issue -d test.example.com --dns  dns_dp

稍等一到两分钟即签发完成,期间如果遇到任何问题可以参考官方 Wiki。之后我们对证书进行安装。如果你是 Nginx 可以执行以下指令:

acme.sh --install-cert -d test.example.com \
--key-file       证书目录/密钥文件.pem  \
--fullchain-file 证书目录/全链证书文件.pem \
--reloadcmd     "service nginx force-reload"

如果你是使用的是 Apache 服务器,可以执行以下指令:

acme.sh --install-cert -d example.com \
--cert-file      证书目录/证书文件.pem  \
--key-file       证书目录/密钥文件.pem  \
--fullchain-file 证书目录/全链文件.pem \
--reloadcmd     "service apache2 force-reload"
相关文章
|
15天前
|
NoSQL 关系型数据库 Redis
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
mall在linux环境下的部署(基于Docker容器),docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongodb、minio详细教程,拉取镜像、运行容器
mall在linux环境下的部署(基于Docker容器),Docker安装mysql、redis、nginx、rabbitmq、elasticsearch、logstash、kibana、mongo
|
12天前
|
域名解析 负载均衡 网络协议
Linux网络接口配置不当所带来的影响
总而言之,Linux网络接口的恰当配置是保证网络稳定性、性能和安全性的基础。通过遵循最佳实践和定期维护,可以最大程度地减少配置错误带来的负面影响。
37 0
|
15天前
|
监控 安全 网络协议
快速配置Linux云服务器
快速配置Linux云服务器
|
24天前
|
开发框架 .NET Linux
【Azure 应用服务】 部署到App Service for Linux 服务的Docker 镜像,如何配置监听端口呢?
【Azure 应用服务】 部署到App Service for Linux 服务的Docker 镜像,如何配置监听端口呢?
|
24天前
|
应用服务中间件 Linux PHP
【Azure 应用服务】App Service For Linux 环境中,如何修改 Nginx 配置中 server_name的默认值 example.com
【Azure 应用服务】App Service For Linux 环境中,如何修改 Nginx 配置中 server_name的默认值 example.com
|
24天前
|
Java Linux Shell
【Azure 应用服务】部署Jar到App Service for Linux,因启动命令路径配置错误而引起:( Application Error 问题
【Azure 应用服务】部署Jar到App Service for Linux,因启动命令路径配置错误而引起:( Application Error 问题
|
3月前
|
安全 网络安全
如何给网站添加ssl安全证书
如何给网站添加ssl安全证书
79 1
|
14天前
|
运维 安全 数据建模
阿里云免费SSL证书和收费版SSL证书有什么区别?
阿里云提供免费与收费SSL证书,前者有效期仅3个月,适合个人网站或测试使用;后者有效期至少1年,具备更高安全等级、良好兼容性及OCSP验证稳定性等优势,适用于企业网站,尤其政府、金融等领域建议选用OV或EV型证书以确保数据与身份认证安全。详细了解与报价请访问SSL证书官方页面。
110 2
|
13天前
|
网络协议 网络安全 数据安全/隐私保护
🔒SSL免费证书自动申请及续期-Certimate
Certimate 是一款旨在简化 SSL 证书管理的工具,尤其适用于需要维护多个域名的个人或小企业用户。它可以自动申请和续期证书,避免了手动操作的繁琐与易忘问题。Certimate 支持私有部署,确保数据安全,并能通过简单配置自动完成证书申请与续期,无需人工干预。详情及使用文档见:[https://docs.certimate.me](https://docs.certimate.me)。
148 1
|
27天前
|
监控 安全 Linux
在Linux中,如何管理SSL/TLS证书?
在Linux中,如何管理SSL/TLS证书?