1 安装 ACME

curl https://get.acme.sh | sh -s email=example@qq.com

acme.sh --install-cronjob # acme.sh 的定时任务

2 认证方式:

2.1 DnsPod token

密钥获取:API 密钥 - DNSPod

域名管理是在DnsPod上,给/etc/profile添加了DnsPod token

# DnsPod Token
export DP_Id=""
export DP_Key=""

2.2 Webroot

Webroot模式申请证书,需要访问到/.well-known 目录

配置Nginx:

# 一键申请SSL证书验证目录相关设置
location ~ \.well-known {
    allow all;
}

2.3 手动DNS验证申请

手动在域名上添加一条 txt 解析记录, 验证域名所有权

acme.sh --issue --dns \
--domain example.com \
--yes-I-know-dns-manual-mode-enough-go-ahead-please

# 在域名解析管理中,添加dns记录值
Add the following TXT record:
[2023年 04月 08日 星期六 21:57:13 CST] Domain: '_acme-challenge.example.com'
[2023年 04月 08日 星期六 21:57:13 CST] TXT value: 'o4MgobqPJsadsfghjKSsadsfdgfhjhW6iIXc'


# 添加完txt解析之后,重新生成证书
acme.sh --renew \
--domain example.com \
--yes-I-know-dns-manual-mode-enough-go-ahead-please

注意:使用这种方式 acme.sh 将无法自动更新证书

3 一键申请Let's Encrypt

申请泛域名

使用DnsPod token(dns_dp)或Webroot认证

安装证书到/www/wwwroot/ssl_cert/

acme.sh --issue \
  --domain atray.cn \
  --domain *.atray.cn \
  --dns dns_dp \
  --webroot /www/wwwroot/atray_typecho \
  --installcert \
  --certpath /www/wwwroot/ssl_cert/atray.cn_bundle.pem \
  --keypath /www/wwwroot/ssl_cert/atray.cn.key \
  --reloadcmd "service nginx reload" \
  --server https://acme-v02.api.letsencrypt.org/directory \
  --email example@qq.com

4. 安装/copy证书

acme.sh --install-cert \
--domain example.com \
--key-file       /usr/local/nginx/conf/ssl/www.example.com.key  \
--fullchain-file /usr/local/nginx/conf/ssl/www.example.com.pem \
--reloadcmd     "service nginx force-reload"

5 其他命令

# 查看帮助
acme.sh -h

# 查看证书列表
acme.sh --list
Main_Domain  KeyLength  SAN_Domains  CA           Created               Renew
example.com      "2048"     www.example.com  ZeroSSL.com  2023-04-05T12:54:46Z  2023-06-04T12:54:46Z

# 查看域名配置
acme.sh --info --domain example.com

# 切换默认证书申请服务器
# 默认使用 ZeroSSL,以下示例切换 Let's Encrypt
acme.sh  --set-default-ca  --server letsencrypt
分类: PHP 标签: 暂无标签

评论

暂无评论数据

暂无评论数据

目录