阿里云acme.sh免费自动配置ssl

本文介绍了如何使用acme.sh在阿里云上免费配置SSL证书,并实现自动更新。首先,通过安装acme.sh,创建zerossl的kid和key。接着,设置阿里云API Key以允许脚本调用接口。然后,安装证书到指定域名,并将其配置到nginx证书目录。最后,启用自动更新功能,确保证书始终保持最新。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

由于我们的网站不配置ssl,浏览器会提示不安全,并且很多ssl现在配置都是要收费的,阿里云已经改成了只能免费一个域名,每次三个月要换一次,以前是一年,所以非常麻烦。网上有免费的ssl证书,可以自动更新,可以让你无需麻烦,我们用的是:acme.sh自动更新。它的原理是:会在你的linux系统增加一个cron定时器,默认每两个月更新一次(因为域名是3个月过期一次,所以这里自己也可以自己调整定时器时间)。由于acme仓库一直在更新,所以该定时器也会自动更新最新的脚本进行证书配置。好了,废话不多说,直接开始

1:安装acme.sh

下载(阿里云服务器无法直接访问github,需要配置hosts)

wget -O -  https://raw.githubusercontent.com/acmesh-official/acme.sh/master/acme.sh | sh -s -- --install-online -m  xxxx@qq.com

安装:

./acme.sh --install -m xxxx@qq.com

2:创建kid,key

这里我们用的免费证书是:zerossl,

<think>好的,用户现在问的是关于在CentOS 7.9上安装acme.sh的问题。我需要先回顾之前的对话历史,看看是否有相关的上下文。之前用户询问的是MySQL 8的ALTER USER root的问题,而这次是关于acme.sh的安装,看起来是一个新的话题。不过,可能用户是在进行服务器配置,先处理了数据库的安全设置,现在需要配置SSL证书,所以转向了acme.sh的安装。 用户的需求可能是想通过acme.sh来自动化申请和管理Let's Encrypt的SSL证书。CentOS 7.9是一个比较旧的系统,但依然广泛使用,所以用户可能是在维护现有的服务器环境。需要确保提供的步骤在CentOS 7.9上有效,并且考虑到可能的依赖问题。 首先,我需要考虑acme.sh的基本安装步骤。通常,安装acme.sh可以通过curl或者wget下载脚本,然后执行安装。但CentOS 7.9默认可能没有安装git或者curl,所以需要先安装这些依赖。另外,用户可能需要配置cron任务来自动续期证书,这部分也需要说明。 然后,用户可能关心的是如何申请证书,比如使用standalone模式还是webroot模式,或者DNS API验证。不同的模式适用不同的场景,需要解释清楚。例如,如果用户已经有Web服务器运行,使用webroot模式可能更合适,而standalone模式可能需要暂时关闭占用80端口的服务。 另外,CentOS 7.9的防火墙是firewalld,可能需要开放80和443端口,或者在申请证书时临时允许这些端口。这也是需要提到的细节,避免用户遇到连接问题。 还有,证书申请后的安装步骤,如何将证书配置到Nginx或Apache中,可能需要给出示例路径和配置片段,但用户可能只需要安装步骤,后续配置可以根据具体的服务器软件调整。不过,提供一些常见服务器的示例会更有帮助。 在安装过程中,可能会遇到依赖问题,比如socat是否安装,或者权限问题,需要提醒用户注意。此外,acme.sh的自动更新功能是否启用,以及如何升级现有的acme.sh脚本,这些也是用户可能关心的问题。 最后,用户可能对安全性有要求,比如使用root还是普通用户安装,是否需要配置sudo权限等。需要建议最佳实践,比如使用普通用户安装,避免使用root权限,以增强安全性。 总结下来,回答的结构应该是先介绍acme.sh,然后详细步骤包括安装依赖、安装脚本、配置环境变量,接着是申请证书的不同方法,续期配置,安装证书到指定目录,以及常见问题和注意事项。同时,要提醒用户关于防火墙的设置和安全性建议,确保他们能够顺利完成安装并正确使用acme.sh管理证书。</think>以下是针对 **CentOS 7.9** 系统使用 `acme.sh` 安装和管理 Let's Encrypt SSL 证书的详细指南: --- ### **1. 安装前准备** #### **1.1 安装依赖工具** ```bash # 更新系统 sudo yum update -y # 安装必要工具(curl、git、socat等) sudo yum install -y curl git socat cronie ``` #### **1.2 启动并启用 cron 服务** ```bash sudo systemctl start crond sudo systemctl enable crond ``` --- ### **2. 安装 `acme.sh`** #### **2.1 下载并安装脚本** ```bash # 使用 curl 安装 curl https://get.acme.sh | sh # 或使用 git 克隆仓库 git clone https://github.com/acmesh-official/acme.sh.git cd acme.sh ./acme.sh --install ``` #### **2.2 配置环境变量** ```bash # 加载 acme.sh 环境变量 source ~/.bashrc # 验证安装 acme.sh -- ### **3. 申请 SSL 证书** #### **3.1 方法 1:Standalone 模式(自动验证)** 适用于服务器未运行 Web 服务时,自动监听 80 端口验证域名所有权。 ```bash # 临时关闭占用 80 端口的服务(如 Nginx/Apache) sudo systemctl stop nginx # 申请证书(替换 yourdomain.com 为实际域名) acme.sh --issue --standalone -d yourdomain.com # 重启 Web 服务 sudo systemctl start nginx ``` #### **3.2 方法 2:Webroot 模式** 适用于已运行 Web 服务时,通过文件验证域名所有权。 ```bash # 创建验证目录 mkdir -p /var/www/html/.well-known/acme-challenge # 申请证书(指定 Web 根目录) acme.sh --issue -d yourdomain.com -w /var/www/html ``` #### **3.3 方法 3:DNS API 验证** 适用于通过 DNS 提供商 API 自动验证(支持阿里云、Cloudflare 等)。 ```bash # 以阿里云 DNS 为例 export Ali_Key="Your_Aliyun_AccessKey" export Ali_Secret="Your_Aliyun_AccessSecret" # 申请证书 acme.sh --issue --dns dns_ali -d yourdomain.com -d *.yourdomain.com ``` --- ### **4. 安装证书到指定目录** ```bash # 创建证书存储目录 sudo mkdir -p /etc/ssl/yourdomain.com # 复制证书文件(替换 yourdomain.com 为实际域名) acme.sh --install-cert -d yourdomain.com \ --key-file /etc/ssl/yourdomain.com/private.key \ --fullchain-file /etc/ssl/yourdomain.com/fullchain.cer \ --reloadcmd "sudo systemctl reload nginx" ``` -- ### **5. 自动续期配置** `acme.sh` 默认已配置自动续期任务(通过 cron 实现),无需手动操作: ```bash # 查看 cron 任务 crontab -l | grep acme.sh ``` -- ### **6. 防火墙配置(如启用 firewalld)** ```bash # 开放 HTTP/HTTPS 端口 sudo firewall-cmd --add-service=http sudo firewall-cmd --add-service=https sudo firewall-cmd --reload ``` --- ### **7. 常见问题** #### **7.1 证书续期失败** - **原因**:DNS 解析未生效、API 密钥错误或端口被占用。 - **解决**: ```bash # 手动强制续期 acme.sh --renew -d yourdomain.com --force ``` #### **7.2 权限不足** - **表现**:`acme.sh` 提示无法写入文件。 - **解决**: ```bash # 使用 root 用户安装或添加 sudo 权限 sudo chmod 755 /etc/ssl/yourdomain.com ``` --- ### **8. 注意事项** 1. **域名解析**:确保域名已正确解析到服务器 IP。 2. **证书路径**:Nginx/Apache 配置中需指定证书路径(参考 `/etc/ssl/yourdomain.com`)。 3. **备份证书**:定期备份 `/etc/ssl` 目录下的证书文件。 4. **安全建议**: - 使用 DNS API 验证时,保护 API 密钥。 - 避免使用 `root` 用户直接操作。 --- ### **示例:Nginx 配置片段** ```nginx server { listen 443 ssl; server_name yourdomain.com; ssl_certificate /etc/ssl/yourdomain.com/fullchain.cer; ssl_certificate_key /etc/ssl/yourdomain.com/private.key; # 其他配置... } ``` -- 通过以上步骤,您可以在 CentOS 7.9 上快速部署 `acme.sh` 并自动化管理 SSL 证书。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值