# Wiki源代码使用 acme.sh 向 Let's Encrypt 申请 https 证书并自动续期

由 Qiongpan Ke 于 2022-09-22 最后修改
导出
Office格式
以PDF格式导出 以ODT格式导出 以RTF格式导出
其他格式

选择要导出的页面：

选择所有/ 无

Legend:
  已创建页面
  修改后的扩展页
  Clean Extension Page

以HTML格式导出

显示最后作者

author | version | line-number | content
--- | --- | --- | ---
|  | 1 | = 概述 =
|  | 2 |
|  | 3 | [[acme.sh>>https://github.com/acmesh-official/acme.sh]] 实现了 acme 协议，可以从一些 CA 机构（如：[[Let's Encrypt>>https://letsencrypt.org/]]）申请网站的 https 证书，并通过安装时创建的 cronjob 定时任务在每天凌晨检查和更新即将过期的证书。
|  | 4 |
|  | 5 | = 使用说明 =
|  | 6 |
|  | 7 | 参考官方中文文档《[[acme.sh 说明>>https://github.com/acmesh-official/acme.sh/wiki/%E8%AF%B4%E6%98%8E]]》。
|  | 8 |
|  | 9 | == 安装 ==
|  | 10 |
|  | 11 | {{code language="sh"}}
|  | 12 | # 其中 email 最好与网站登录的邮箱一致，可以用 whois 先查一下。
|  | 13 | curl https://get.acme.sh | sh -s email=example@example.com
|  | 14 | # 如果使用非 root 用户安装，默认安装到 ~/.acme.sh/ 目录，并将命令行别名 acme.sh 添加到当前用户的启动脚本（如.bashrc），重新登录即可生效。
|  | 15 | # alias acme.sh=~/.acme.sh/acme.sh
|  | 16 | {{/code}}
|  | 17 |
|  | 18 | == 生成证书 ==
|  | 19 |
|  | 20 | 生成证书时需要验证您对 Web 服务器的管理权限，有两种方式：a) 在服务器根路径下添加用于验证的文件； b) 在该域名下添加一条 txt 类型的 DNS 解析记录。
|  | 21 |
|  | 22 | === 文件验证方式 ===
|  | 23 |
|  | 24 | {{code language="sh" layout="LINENUMBERS"}}
|  | 25 | # 方式1: 指定放置验证文件的目录；
|  | 26 | acme.sh --issue -d example.com -d www.example.com --webroot /srv/www/example.com/
|  | 27 | # 方式2: 根据当前系统的 apache 配置查找放置验证文件的目录；
|  | 28 | acme.sh --issue -d example.com --apache
|  | 29 | # 方式3: 根据当前系统的 nginx 配置查找放置验证文件的目录；
|  | 30 | acme.sh --issue -d example.com --nginx
|  | 31 | # 方式4: 当没有任何 Web 服务器，可以模拟一个 Web 服务，以完成验证。
|  | 32 | acme.sh --issue -d example.com --standalone
|  | 33 | {{/code}}
|  | 34 |
|  | 35 | === DNS验证方式 ===
|  | 36 |
|  | 37 | 手动配置 DNS 解析记录的方式：
|  | 38 |
|  | 39 | {{code language="sh"}}
|  | 40 | # 查看需要手动配置的 DNS 解析记录
|  | 41 | acme.sh --issue --dns -d example.com --yes-I-know-dns-manual-mode-enough-go-ahead-please
|  | 42 | # 向 CA 申请并生成 https 证书
|  | 43 | acme.sh --renew -d example.com --yes-I-know-dns-manual-mode-enough-go-ahead-please
|  | 44 | {{/code}}
|  | 45 |
|  | 46 | 自动配置 DNS 解析记录的方式（支持 cloudflare, [[dnspod>>https://console.dnspod.cn/account/token/token]], cloudxns, godaddy ）：
|  | 47 |
|  | 48 | {{code language="sh"}}
|  | 49 | # 在 dnspod 平台申请生成 DNSPod Token 的 ID 和 Token
|  | 50 | export DP_Id="1234"
|  | 51 | export DP_Key="sADDsdasdgdsf"
|  | 52 | # 自动向 dnspod 添加 DNS 解析记录，并向 CA 申请生成 https 证书
|  | 53 | acme.sh --issue --dns dns_dp -d example.com -d www.example.com
|  | 54 | {{/code}}
|  | 55 |
|  | 56 | == 安装证书 ==
|  | 57 |
|  | 58 | 上面生成的证书默认是放置到 ~~/.acme.sh/ 目录下，但 Web 服务器不应直接引用该目录下的证书，应该使用 install-cert 命令将证书安装到指定位置。
|  | 59 |
|  | 60 | Apache:
|  | 61 |
|  | 62 | {{code language="sh"}}
|  | 63 | acme.sh --install-cert -d example.com \
|  | 64 | --cert-file /path/to/certfile/in/apache/cert.pem \
|  | 65 | --key-file /path/to/keyfile/in/apache/key.pem \
|  | 66 | --fullchain-file /path/to/fullchain/certfile/apache/fullchain.pem \
|  | 67 | --reloadcmd "service apache2 force-reload"
|  | 68 | {{/code}}
|  | 69 |
|  | 70 | Nginx:
|  | 71 |
|  | 72 | {{code language="sh"}}
|  | 73 | acme.sh --install-cert -d example.com \
|  | 74 | --key-file /path/to/keyfile/in/nginx/key.pem \
|  | 75 | --fullchain-file /path/to/fullchain/nginx/cert.pem \
|  | 76 | --reloadcmd "service nginx force-reload"
|  | 77 | {{/code}}
|  | 78 |
|  | 79 | == 证书续期 ==
|  | 80 |
|  | 81 | 通过 cronjob 创建的定时任务，在每次凌晨会进行证书过期检查，在过期前会完成证书更新续期。目前每 **60** 天会自动更新续期一次证书，无需任何人工干预。
|  | 82 |
|  | 83 | 如果不再需要证书续期，可以执行下面脚本移除对指定域名的证书的检查更新（但不会移除当前在用的证书文件）：
|  | 84 |
|  | 85 | {{code language="sh"}}
|  | 86 | acme.sh --remove -d example.com
|  | 87 | {{/code}}
|  | 88 |
|  | 89 | == 升级 ==
|  | 90 |
|  | 91 | {{code language="sh"}}
|  | 92 | # 立即检查升级
|  | 93 | acme.sh --upgrade
|  | 94 | # 开启自动检查升级
|  | 95 | acme.sh --upgrade --auto-upgrade
|  | 96 | # 关闭自动检查升级
|  | 97 | acme.sh --upgrade --auto-upgrade 0
|  | 98 | {{/code}}
|  | 99 |
|  | 100 | = 使用 docker 运行 acme.sh =
|  | 101 |
|  | 102 | 可参考官方文档《[[Run acme.sh in docker>>https://github.com/acmesh-official/acme.sh/wiki/Run-acme.sh-in-docker]]》。

# 同级页面

# 博客类别

- https://keqiongpan.cn:80/bin/view/Blog/">全部

- News (0)
- Other (0)
- Personal (0)

# 当前已创建的

- 线性布局组件与占位组件
- React
- CSS Flexbox Cheat Sheet
- CSS界面布局控制属性概述
- CSS

粤公网安备 44011802000481号 粤ICP备2020117634号
版权所有，如发现盗用模仿必追诉法律责任！
CopyRight © 2020-2023 keqiongpan.cn. All Right Reserved.