type
status
date
slug
summary
tags
category
icon
password
📖
下面例子中,域名是托管在阿里云上,所以采用的阿里云DNS申请方式,若其它申请方式可见 acme.sh其它平台申请方式

✨ 安装acme.sh

首先需要安装acme.sh脚本:
安装完成后,退出并重新登录终端,或执行以下命令使环境变量生效:

🤗 配置阿里云DNS API

acme.sh支持通过阿里云API自动添加DNS记录。需要先创建AccessKey:
  1. 登录阿里云控制台
  1. 进入AccessKey管理页面
  1. 创建AccessKey并保存AccessKey ID和AccessKey Secret
然后设置环境变量:
也可以将这些变量永久保存:

📎 申请证书(阿里云方式)

使用DNS API模式申请证书:
如果需要,可以指定DNS API选项:
如果之前已经安装过多域名证书,可以先卸载:

🗨️ 安装证书到Nginx

📢
前面证书生成以后, 接下来需要把证书 copy 到真正需要用它的地方。
注意, 默认生成的证书都放在安装目录下: ~/.acme.sh/, 请不要直接使用此目录下的文件, 例如: 不要直接让 nginx/apache 的配置文件使用这下面的文件. 这里面的文件都是内部使用, 而且目录结构可能会变化。
正确的使用方法是使用 --install-cert 命令,并指定目标位置, 然后证书文件会被copy到相应的位置
若nginx是原始安装(安装包方式),安装证书命令如下
若nginx采用docker安装,安装证书命令如下
如果使用docker-compose,则可以这样设置:
默认情况下,证书每 60 天更新一次(可自定义)。更新证书后,Apache 或者 Nginx 服务会通过 reloadcmd 传递的命令自动重载配置。
💡
注意:reloadcmd 非常重要。证书会自动申请续签,但是如果没有正确的 reloadcmd 命令,证书可能无法被重新应用到 Apache 或者 Nginx,因为配置没有被重载。

🎗️ 查看已安装证书信息

会输出如下内容:

📈 更新证书

目前证书每 60 天自动更新,无需任何操作。
但是也可以强制续签证书:

🍁 关于修改 reloadcmd

目前修改 reloadcmd 没有专门的命令,可以通过重新安装证书来实现修改 reloadcmd 的目的。
此外,安装证书后,相关信息是保存在 ~/.acme.sh/example.com/example.conf 文件下的,内容就是 acme.sh --info -d example.com 输出的信息,不过 reloadcmd 在文件中使用了 Base64 编码。理论上可以通过直接修改该文件来修改 ReloadCmd,且修改时,无需 Base64 编码,直接写命令原文 acme.sh 也可以识别。
不过,由于 example.conf 文件的位置和内容格式以后可能会改变,且 example.conf 一直都是内部使用,后续也有可能会改为用 SQLite 或者 MySQL 格式存储. 所以一般不建议自己修改。

🐚 更新 acme.sh

acmd.sh 还在不断开发中,因此强烈建议保持并使用最新的版本。
升级 acme.sh 到最新版:
如果你不想手动升级,可以开启自动升级:
之后,acme.sh 就会自动保持更新了。
你也可以随时关闭自动更新:
 

🥣 出错怎么办

如果出错,请添加 --debug 参数输出详细的调试信息:
或者输出更详细的信息:
请参考:参考链接
在 DNS 验证模式下如果 debug 中出现诸如 timed out 等字样可能是因为 GFW HTTP(S) Proxy 环境变量。(请按照自己实际设定修改)

🎢 更多高级的用法

上述内容并非完全的使用说明,还有很多高级的功能,更高级的用法请参看 wiki 页面:https://github.com/acmesh-official/acme.sh/wiki/
 
 
Maven 私服TDengine时序数据库数据批量导入
Loading...
十十乙
十十乙
我来问道无余说,云在青天水在瓶
最新发布
使用acme.sh通过DNS方式申请并安装证书
2025-2-17
[电影][中国台湾][阳光普照]
2025-2-17
[电影][中国大陆][邪不压正]
2025-2-17
[电影][中国大陆][太阳照常升起]
2025-2-17
[电影][中国香港][旺角黑夜]
2025-2-17
Mysql之Explain详解
2025-2-17