南京网络推广平台seo顾问张智伟
web/
2025/9/28 10:24:19/
文章来源:
南京网络推广平台,seo顾问张智伟,苏州seo网站优化软件,如何制作h5Acme.sh 是一个开源的脚本#xff0c;能够从 ZeroSSL、Let’s Encrypt 等证书颁发机构#xff08;CA#xff09;获取免费的 HTTPS 证书。该脚本特别简单易用#xff0c;并且支持多种验证方式。下面将详细介绍使用 Acme.sh 生成、安装和更新证书的各个步骤。 Github地址 使用…Acme.sh 是一个开源的脚本能够从 ZeroSSL、Let’s Encrypt 等证书颁发机构CA获取免费的 HTTPS 证书。该脚本特别简单易用并且支持多种验证方式。下面将详细介绍使用 Acme.sh 生成、安装和更新证书的各个步骤。 Github地址 使用说明
1. 安装 Acme.sh
安装 Acme.sh 可以通过简单的命令实现并且不限制于 root 用户。普通用户也能顺利完成安装。
命令安装需要服务器能正常访问githubcurl https://get.acme.sh | sh -s emailmyexample.com或wget -O - https://get.acme.sh | sh -s emailmyexample.com从 GitHub 安装curl https://raw.githubusercontent.com/acmesh-official/acme.sh/master/acme.sh | sh -s -- --install-online -m myexample.com或wget -O - https://raw.githubusercontent.com/acmesh-official/acme.sh/master/acme.sh | sh -s -- --install-online -m myexample.comgit clone 并安装(推荐)git clone --depth 1 https://github.com/acmesh-official/acme.sh.git
cd acme.sh
./acme.sh --install -m myexample.com高级安装git clone --depth 1 https://github.com/acmesh-official/acme.sh.git
cd acme.sh
./acme.sh --install \
--home ~/myacme \
--config-home ~/myacme/data \
--cert-home ~/mycerts \
--accountemail myexample.com \
--accountkey ~/myaccount.key \
--accountconf ~/myaccount.conf \
--useragent this is my client.你不需要把它们都设置好只需设置你关心的那些就行了。 解释 –home是要在其中安装的自定义目录。默认情况下它会安装到acme.sh~/.acme.sh–config-home是一个可写文件夹acme.sh 会把所有文件包括证书/密钥、配置都写入那里。默认情况下它位于–home–cert-home是用于保存您颁发的证书的自定义目录。默认情况下它保存在 .–config-home–accountemail是用于向 Let’s Encrypt 注册帐户的电子邮件您将在此处收到续订通知电子邮件。–accountkey是保存您账户私钥的文件。默认情况下它保存在 .–config-home–useragent是用于发送到 Let’s Encrypt 的用户代理标头值。–nocron在没有 cronjob 的情况下安装 acme.sh
安装过程中Acme.sh 会自动
将自身安装到用户的 home 目录中的 ~/.acme.sh/ 文件夹。在 shell 配置文件如 .bashrc中创建一个别名以便于调用alias acme.sh~/.acme.sh/acme.sh。创建一个 cronjob 任务每天 0:00 自动检测所有证书的有效期。若证书即将过期将自动进行更新。
如果安装完成后遇到 -bash: acme.sh: command not found 错误需执行 source ~/.bashrc。
2. 生成证书
Acme.sh 支持 ACME 协议的所有验证方式其中最常用的是 HTTP 验证和 DNS 验证。 HTTP 验证 直接签发 指定域名和网站根目录Acme.sh 将自动在根目录下生成并删除验证文件验证过程安全无副作用。acme.sh --issue -d mydomain.com -d www.mydomain.com --webroot /home/wwwroot/mydomain.com/使用 Apache 模式 Acme.sh 可以智能地从 Apache 的配置中读取信息自动完成验证无须指定网站根目录。acme.sh --issue --apache -d example.com -d www.example.com -d cp.example.com使用 Nginx 模式 同样Acme.sh 也能智能地从 Nginx 的配置中读取信息完成验证。acme.sh --issue --nginx -d example.com -d www.example.com -d cp.example.com使用独立服务模式 如果服务器上没有运行任何 Web 服务且 80 端口空闲Acme.sh 可以启动临时 Web 服务来完成验证。acme.sh --issue --standalone -d example.com -d www.example.com -d cp.example.com修改默认 CA 若遇到证书申请卡在待处理状态尝试将 CA 服务器改为 Let’s Encrypt。acme.sh --set-default-ca --server letsencryptDNS 验证 手动验证 若不能通过 Web 服务器自动验证可手动在域名管理面板添加一条 TXT 记录以验证域名所有权。acme.sh --issue --dns -d example.com -d www.example.com -d cp.example.com之后需重新生成证书acme.sh --renew -d example.com自动验证DNS API DNS 方式的真正强大之处在于可以使用域名解析商提供的 API 自动添加 TXT 记录且在完成验证后删除对应的记录。 acme.sh 目前支持超过一百家的 DNS API。 以 Aliyun 为例获取 API Key 并执行export Ali_KeyLTAI5**************
export Ali_SecretSkYA**************现在我们可以签发通配符证书了/root/.acme.sh/acme.sh --issue --dns dns_ali -d example.cn -d *.example.cnAli_Key和 Ali_Secret将保存在 ~/.acme.sh/account.conf 中并在需要时自动获取无需手动再设置。 更详细的 DNS API 用法: https://github.com/acmesh-official/acme.sh/wiki/dnsapi
3. 安装证书到服务 Apache 示例 acme.sh --install-cert -d example.com \
--cert-file /path/to/certfile/in/apache/cert.pem \
--key-file /path/to/keyfile/in/apache/key.pem \
--fullchain-file /path/to/fullchain/certfile/apache/fullchain.pem \
--reloadcmd service apache2 force-reloadNginx 示例 acme.sh --install-cert -d example.com \
--key-file /path/to/keyfile/in/nginx/key.pem \
--fullchain-file /path/to/fullchain/nginx/cert.pem \
--reloadcmd service nginx reloadNginx 的配置项 ssl_certificate 需要使用 /etc/nginx/ssl/fullchain.cer 而非 /etc/nginx/ssl/.cer 否则 SSL Labs 的测试会报证书链问题Chain issues Incomplete。
默认情况下证书每 60 天更新一次可自定义。更新证书后Apache 或者 Nginx 服务会通过 reloadcmd 传递的命令自动重载配置。
注意reloadcmd 非常重要。证书会自动申请续签但是如果没有正确的 reloadcmd 命令证书可能无法被重新应用到 Apache 或者 Nginx因为配置没有被重载。
4. 查看已安装证书的信息
利用 Acme.sh 可以轻松查看任何已签发证书的详细信息。
acme.sh --info -d example.com上述命令将显示证书的配置包括证书的创建时间、下次续签时间以及用于自动更新服务配置的命令等。
5. 更新证书
证书每 60 天自动更新无需用户手动操作。不过也可以使用强制更新命令重新续签证书
acme.sh --renew -d example.com --force6. 修改 reloadcmd
修改 reloadcmd 虽然没有专门的命令但可以通过重新安装证书时指定来实现。此外证书信息存储在 ~/.acme.sh/example.com/example.conf 文件中用 Base64 编码保存了 reloadcmd。理论上可以直接编辑此文件并解码修改但官方不推荐该方法因为文件格式可能会变化。
7. 更新 Acme.sh
Acme.sh 持续开发中为了获得最新的功能和修复建议定期更新。 手动更新 acme.sh --upgrade自动更新 开启自动更新Acme.sh 将自动保持最新版本。 acme.sh --upgrade --auto-upgrade随时关闭自动更新 acme.sh --upgrade --auto-upgrade 08. 出错怎么办
遇到错误时可以添加 --debug 参数获取更详细的调试信息帮助诊断问题所在。
基本调试acme.sh --issue ... --debug高级调试acme.sh --issue ... --debug 2如在 DNS 验证中遇到超时问题可能是网络环境问题可以设置 HTTP 或 HTTPS 代理环境变量解决。
export http_proxysocks5h://localhost:1081
export https_proxysocks5h://localhost:1081如果遇到更复杂的问题可以参考官方提供的调试指南https://github.com/acmesh-official/acme.sh/wiki/How-to-debug-acme.sh
以上是利用 Acme.sh 生成和管理证书的基本指南但其功能远不止于此更多高级用法可查看官方文档https://github.com/acmesh-official/acme.sh/wiki/
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/83280.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!