在网络安全愈发重要的今天,为网站配置 SSL 证书已成为必不可少的操作。SSL 证书能对网站与用户之间传输的数据进行加密,防止信息被窃取和篡改,提升用户对网站的信任度。ZeroSSL 作为知名的免费 SSL 证书颁发机构,以其便捷的服务和广泛的兼容性受到众多网站管理者的青睐。而 acme.sh 则是一款强大的自动化脚本工具,能基于 ACME 协议帮助我们轻松申请和管理 SSL 证书。下面就为大家带来使用 acme.sh 申请 ZeroSSL 证书的超详细教程。
前期准备工作
在正式开始申请流程之前,需要确保服务器满足一些基本条件。首先,服务器必须能够访问外网,因为申请证书的过程中需要与 ZeroSSL 的服务器进行通信。其次,要安装 curl 或 wget 工具,这两个工具在后续下载 acme.sh 脚本时会用到。另外,你还需要拥有一个已经解析到该服务器的域名,同时要确保你对该域名的 DNS 记录有管理权限,因为后续申请过程中需要进行 DNS 验证。
注册 ZeroSSL 账户并获取 API 密钥
- 注册账户:访问 ZeroSSL 官网,这是一个提供免费 SSL 证书服务的专业平台。点击 “Get Started” 按钮,然后按照页面提示完成注册流程。注册过程通常需要填写一些基本信息,如邮箱、密码等,按照指引操作即可轻松完成。
- 获取 API 密钥:成功登录 ZeroSSL 账户后,在控制台中找到 “API Keys” 选项。点击 “Create API Key” 按钮,系统会为你生成一个新的 API 密钥。一定要妥善记录下这个 API 密钥,它在后续配置
acme.sh
时会起到关键作用。
安装 acme.sh
在服务器上打开终端,输入以下命令来安装 acme.sh:
curl https://get.acme.sh | sh -s email=你的ZeroSSL邮箱
或者
wget -O - https://get.acme.sh | sh -s email=你的ZeroSSL邮箱
执行该命令后,acme.sh 会自动下载并安装到系统中,同时会将其配置添加到环境变量里,方便后续使用。安装完成后,重启终端或者使用以下命令使配置立即生效:
source ~/.bashrc
配置 acme.sh 使用 ZeroSSL
获取 API 密钥
登录ZeroSSL账户后,找到 API 密钥管理页面,点击生成新的 API 密钥。API 密钥是 acme.sh 与 ZeroSSL 进行交互的重要凭证,一定要妥善保管,不要泄露给他人。
设置环境变量
在终端中输入以下命令,将 ZeroSSL 的 API 密钥设置为环境变量:
export ZEROSSL_KEY="your_zerossl_api_key"
请将 your_zerossl_api_key 替换为你在 ZeroSSL 账户中生成的实际 API 密钥。
申请 ZeroSSL 证书
申请单域名证书
若你只需要为单个域名申请证书,可使用以下命令:
acme.sh --issue --dns dns_zerossl -d your_domain.com
将 your_domain.com 替换为你要申请证书的实际域名。执行该命令后,acme.sh 会通过 DNS 验证的方式来确认你对该域名的所有权。在验证过程中,acme.sh 会提示你在域名的 DNS 记录中添加一条 TXT 记录。
申请泛域名证书
如果你要为多个域名申请通配符证书,可使用以下命令:
acme.sh --issue --dns dns_zerossl -d your_domain.com -d *.your_domain.com
同样,将 your_domain.com 替换为实际域名。这种方式适用于需要为同一主域名下的多个子域名提供安全保障的情况。
DNS 验证
根据 acme.sh 的提示,登录你的域名管理控制台,在 DNS 记录中添加相应的 TXT 记录。添加完成后,等待 DNS 记录生效,这可能需要几分钟到几小时不等,具体取决于你的 DNS 提供商。当 DNS 记录生效后,按回车键继续完成证书申请流程。
安装与配置证书
安装证书到指定目录
生成证书后,您可能希望将证书安装/复制到您的Apache/Nginx或其他服务器。
您必须使用此命令将证书复制到目标文件,请勿使用~/.acme.sh/文件夹中的证书文件,它们仅供内部使用。
请注意设置好证书文件的权限,以后证书自动更新时,脚本会保留文件权限,不需二次设置。
acme.sh --install-cert -d example.com \
--key-file /etc/acme/ssl/example.com/example.com.key \
--fullchain-file /etc/acme/ssl/example.com/example.com.crt \
--reloadcmd "service nginx reload"
--key-file
:指定私钥文件的保存路径。--fullchain-file
:指定完整证书链文件的保存路径。--reloadcmd
:指定证书更新后要执行的命令,这里是重新加载 Nginx 服务。
配置你的Apache/Nginx
自行修改Apache/Nginx配置,指定SSL证书到上一步的路径。
自动更新SSL证书
acme.sh --upgrade --auto-upgrade
证书默认有效期为 90 天,acme.sh
会自动续期。不需要手动更新证书,证书将每60天自动更新一次。
强制更新证书
acme.sh --renew -d example.com --force
通过以上详细的步骤,你就可以使用 acme.sh 成功申请并安装 ZeroSSL 证书,为你的网站增添一层安全保障。让用户在访问你的网站时更加放心,也提升了网站在搜索引擎中的可信度和排名。赶紧行动起来,为你的网站申请一份安全的 SSL 证书吧!