Acme.sh:修订间差异
无编辑摘要 |
|||
第131行: | 第131行: | ||
=== 服务器软件和acme.sh都使用容器 === | === 服务器软件和acme.sh都使用容器 === | ||
====方法1==== | |||
以nginx, acme.sh为例: | |||
*使用acme.sh申请一次证书,: | |||
<syntaxhighlight lang="bash" > | |||
sudo docker run --rm -it \ | |||
-v "/home/your/project/nginx/ssl":/acme.sh \ | |||
--name=acme.sh \ | |||
-e Namesilo_Key=xxxxxxxx \ | |||
neilpang/acme.sh acme.sh --issue --dns dns_namesilo -d www.example.com --server letsencrypt --dnssleep 900 | |||
</syntaxhighlight> | |||
====方法2==== | |||
==资源== | ==资源== |
2024年3月26日 (二) 18:03的最新版本
acme.sh 是一个免费开源的,使用shell脚本语言编写的ACME客户端,能够用于自动签发和更新免费证书。
简介
时间轴
- 2016年4月6日,发布acme.sh 1.2.2。
- 2018年2月10日,发布acme.sh 2.7.6,支持ACME v2。
- 2021年8月1日,发布acme.sh 3.0.0,将默认CA改为ZeroSSL,之前是Let's Encrypt。
了解更多 >> acme.sh:发布
安装
acme.sh是一个脚本程序,直接下载即可:
#使用curl下载
curl https://get.acme.sh | sh
#或使用wget下载
wget -O - https://get.acme.sh | sh
了解更多 >> acme.sh wiki:如何安装
支持的CA
2021年8月1日,将默认CA改为ZeroSSL,之前是Let's Encrypt。
名称 | 描述 | 网站 |
---|---|---|
ZeroSSL | 默认 | https://zerossl.com/ |
Let's Encrypt | 使用--server letsencrypt 指定CA为Let's Encrypt。示例:acme.sh --issue --dns dns_namesilo -d example.com -d www.example.com --server letsencrypt
|
https://letsencrypt.org/ |
SSL.com | https://www.ssl.com/ | |
其他CA | 任何支持 ACME(RFC 8555)协议的CA | https://datatracker.ietf.org/doc/html/rfc8555 |
签发证书
签发方式
验证方式 | 运行方法 | 描述 |
---|---|---|
HTTP | Webroot 模式 | 当有一个运行的Web服务器,只需要通过-w 指定Web 根文件夹。示例: acme.sh --issue -d example.com -w /home/wwwroot/example.com
|
独立模式 | 如果您没有 Web 服务器,且80 端口没有使用。可以使用独立模式,acme.sh 有一个内置的独立网络服务器,它可以在80端口监听签发证书。 示例: acme.sh --issue -d example.com --standalone 如果使用了反向代理将http端口转到了其他端口,可以使用 --httpport 指定端口。示例: acme.sh --issue -d example.com --standalone --httpport 88
| |
DNS | API模式 | 如果域名服务商提供API,acme.sh可以使用api自动添加域名的txt记录。该模式可以自动签发和续签。 命令: acme.sh --issue --dns 域名服务商编码 -d 域名 示例阿里云域名: # 阿里云上获取域名api,并导入到主机中
export Ali_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
export Ali_Secret="jlsdflanljkljlfdsaklkjflsa"
#使用dns API模式签发
acme.sh --issue --dns dns_ali -d example.com -d www.example.com
|
手动模式 | ||
TLS ALPN | 独立模式 | 如果您没有 Web 服务器,且443端口没有使用。可以使用TLS ALPN 独立模式,acme.sh 有一个内置的独立网络服务器,它可以在43端口监听签发证书。 示例: acme.sh --issue -d example.com --alpn 如果使用了反向代理将443端口转到了其他端口,可以使用 --tlsport 指定端口。示例: acme.sh --issue -d example.com --alpn --tlsport 8443
|
了解更多 >> acme.sh wiki:如何签发证书
DNS API
常用域名服务商如下:
名称 | 描述 |
---|---|
阿里云 | export Ali_Key="<key>"
export Ali_Secret="<secret>"
acme.sh --issue --dns dns_ali -d example.com -d *.example.com
|
GoDaddy.com | export GD_Key="<key>"
export GD_Secret="<secret>"
acme.sh --issue --dns dns_gd -d example.com -d *.example.com
|
了解更多 >> acme.sh wiki:How to use DNS API
Docker中使用
服务器软件使容器
acme.sh安装在主机上, 将cert/key部署到容器中。
服务器软件和acme.sh都使用容器
方法1
以nginx, acme.sh为例:
- 使用acme.sh申请一次证书,:
sudo docker run --rm -it \
-v "/home/your/project/nginx/ssl":/acme.sh \
--name=acme.sh \
-e Namesilo_Key=xxxxxxxx \
neilpang/acme.sh acme.sh --issue --dns dns_namesilo -d www.example.com --server letsencrypt --dnssleep 900
方法2
资源
官网
- acme.sh 官网:https://acme.sh
- acme.sh Wiki:https://wiki.acme.sh
- acme.sh 中文说明:https://github.com/acmesh-official/acme.sh/wiki/说明
- acme.sh 源代码:https://github.com/acmesh-official/acme.sh