返回

基于acme.sh从Letsencrypt生成免费的泛域名证书

见解分享

使用 acme.sh 从 Let's Encrypt 生成免费泛域名 SSL 证书

简介

在现代互联网世界中,网站的安全性和可靠性至关重要。HTTPS(超文本传输安全协议)是一种保护网站和浏览器之间数据安全的协议。HTTPS 通过加密数据,防止其被窃取或篡改。要实施全站 HTTPS,网站需要安装 SSL(安全套接字层)证书。

使用 acme.sh 生成免费 SSL 证书

acme.sh 是一个命令行工具,可帮助您从 Let's Encrypt 生成免费的 SSL 证书。Let's Encrypt 是一家非营利组织,致力于提供免费且可信赖的 SSL 证书。以下是使用 acme.sh 生成 SSL 证书的步骤:

  1. 安装 acme.sh

在您的服务器上安装 Git 并克隆 acme.sh 存储库。然后将 acme.sh 添加到您的 PATH 环境变量中。

  1. 创建 acme.sh 帐户

使用 acme.sh --register-account 创建一个新的 acme.sh 帐户。

  1. 选择域名并生成证书

使用 acme.sh --issue -d example.com -d *.example.com 为您的域名生成泛域名证书。

  1. 安装证书

使用 acme.sh --install-cert -d example.com -d *.example.com --key-file /etc/letsencrypt/live/example.com/privkey.pem --cert-file /etc/letsencrypt/live/example.com/fullchain.pem 在您的服务器上安装证书。

  1. 重启服务器

重启您的服务器以使证书生效。

生成泛域名证书

泛域名证书允许您保护同一域名下的多个子域名。例如,如果您拥有 example.com 域,您可以使用泛域名证书保护 *.example.com 中的所有子域名,例如 www.example.commail.example.com

要生成泛域名证书,请在 acme.sh --issue 命令中包含 -d *.example.com 标志。

代码示例

git clone https://github.com/acmesh-official/acme.sh.git
export PATH="$HOME/.acme.sh:$PATH"
source ~/.bashrc
acme.sh --register-account
acme.sh --issue -d example.com -d *.example.com
acme.sh --install-cert -d example.com -d *.example.com \
  --key-file /etc/letsencrypt/live/example.com/privkey.pem \
  --cert-file /etc/letsencrypt/live/example.com/fullchain.pem

常见问题解答

问题 1:安装 acme.sh 时出现“command not found”错误。

确保您已将 acme.sh 添加到您的 PATH 环境变量中,并重新加载了您的 PATH 环境变量。

问题 2:生成泛域名证书时出现“DNS record not found”错误。

确保您已在您的域名解析记录中添加了 acme.sh 要求的 TXT 记录。

问题 3:安装 SSL 证书时出现“Permission denied”错误。

确保您具有安装 SSL 证书所需的权限。

问题 4:acme.sh 无法生成证书。

检查 acme.sh 的日志文件以查看错误消息。您可能需要更新 acme.sh 或检查您的域名设置。

问题 5:证书到期后如何更新证书?

使用 acme.sh --renew -d example.com -d *.example.com 命令更新证书。

总结

acme.sh 是一个强大且易于使用的工具,可帮助您为您的网站生成免费且可信赖的 SSL 证书。通过实施 HTTPS,您可以保护您的网站和用户的数据,并提高您网站的安全性。