https 证书申请

安装脚本

1
curl https://get.acme.sh | sh

执行上面的命令,它会:

  • 从 GitHub 上下载 sh 脚本并执行
  • 把文件解压到用户的 ~/.acme.sh目录下
  • 给命令行设置一个acme.sh的 alias 别名
  • 最后注册一个 cron 定时任务来自动更新证书。

使用命名查看有无帮助信息

source ~/.bashrc;acme.sh -h

2 签发 SSL 证书

签发 SSL 证书需要证明这个域名是属于你的,即域名所有权,一般有两种方式验证:http 和 dns 验证。

本次仅以 http Standalone mode 签发证书

1
2
3
4
5
acme.sh  --issue  -d example.com  --standalone
acme.sh --issue -d example.com --standalone --httpport 88 ## 执行端口
acme.sh --issue -d example.com --alpn --tlsport 8443 # 自行指定tls端口
acme.sh --issue -d \*.example.com -d example.com # 泛域名配置

toubleShoot

Tue Jun 27 12:50:01 CST 2023] Using CA: https://acme.zerossl.com/v2/DV90
[Tue Jun 27 12:50:01 CST 2023] Standalone mode.
[Tue Jun 27 12:50:01 CST 2023] No EAB credentials found for ZeroSSL, let’s get one
[Tue Jun 27 12:50:01 CST 2023] acme.sh is using ZeroSSL as default CA now.
[Tue Jun 27 12:50:01 CST 2023] Please update your account with an email address first.
[Tue Jun 27 12:50:01 CST 2023] acme.sh –register-account -m my@example.com
[Tue Jun 27 12:50:01 CST 2023] See: https://github.com/acmesh-official/acme.sh/wiki/ZeroSSL.com-CA
[Tue Jun 27 12:50:01 CST 2023] Please add ‘–debug’ or ‘–log’ to check more details.
[Tue Jun 27 12:50:01 CST 2023] See: https://github.com/acmesh-official/acme.sh/wiki/How-to-debug-acme.sh

修改默认的server

1
acme.sh --set-default-ca  --server  letsencrypt

指定默认server配置

1
2
acme.sh --issue --dns dns_cf -d domain.tld --server letsencrypt

开放端口

1
2
3
4
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload
firewall-cmd --list-ports
1
2
3
4
5
[Tue Jun 27 13:04:06 CST 2023] Your cert is in: /root/.acme.sh/ruha11.xyz_ecc/ruha11.xyz.cer
[Tue Jun 27 13:04:06 CST 2023] Your cert key is in: /root/.acme.sh/ruha11.xyz_ecc/ruha11.xyz.key
[Tue Jun 27 13:04:06 CST 2023] The intermediate CA cert is in: /root/.acme.sh/ruha11.xyz_ecc/ca.cer
[Tue Jun 27 13:04:06 CST 2023] And the full chain certs is there: /root/.acme.sh/ruha11.xyz_ecc/fullchain.cer
[Tue Jun 27 13:04:07 CST 2023] _on_issue_success

安装证书

nginx

1
2
3
4
5
acme.sh --install-cert -d domain.tld \
--key-file /path/to/ssl/private.key \
--fullchain-file /path/to/ssl/fullchain.pem \
--reloadcmd "service nginx restart"

1
acme.sh --install-cert -d ruha11.xyz --key-file /etc/cert/private.key  --fullchain-file /etc/cert/fullchain.pem

更新会自动更新

acm 脚本会记录执行的命令 证书续期的时候自己再重新执行命令然后重启服务

参考文章

用acme.sh帮你免费且自动更新的HTTPS证书,省时又省力

使用 acme.sh 自动签发和更新证书

官方中文文档


https 证书申请
https://kingjem.github.io/2023/04/23/https证书申请/
作者
Ruhai
发布于
2023年4月23日
许可协议