2024-05-08

acme.sh + cloudflare 获取泛域名证书

配置 cloudflare

在域名的 dns 记录里加上

类型 名称 内容
A * xxx.xxx.xxx.xxx

acme.sh

安装

cd ~
# 把 acme.sh 安装到 home 目录下
curl https://get.acme.sh
# 进入 .acme.sh 目录
cd ~/.acme.sh

注册 ZeroSSL.com

注意:自 v3 以来, zhucacme.sh 使用 Zerossl 作为默认证书颁发机构 (CA)。在颁发新证书之前,需要注册帐户(一次性)

https://github.com/acmesh-official/acme.sh/wiki/Change-default-CA-to-ZeroSSL

ZeroSSL.com CA · acmesh-official/acme.sh Wiki --- ZeroSSL.com CA · acmesh-official/acme.sh Wiki (github.com)

./acme.sh  --register-account  -m myemail@example.com --server zerossl

生成证书

准备

这里使用的是 dns 生成,查看对应的 dns 配置

https://github.com/acmesh-official/acme.sh/blob/master/dnsapi/README.md

https://github.com/acmesh-official/acme.sh/wiki/dnsapi

查看 cf 配置 https://github.com/acmesh-official/acme.sh/blob/master/dnsapi/dns_cf.sh

#!/usr/bin/env sh

#CF_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
#CF_Email="xxxx@sss.com"
#CF_Token="xxxx"
#CF_Account_ID="xxxx"
#CF_Zone_ID="xxxx"
...
配置环境变量
# 登录,访问 https://dash.cloudflare.com/profile/api-tokens
# Global API Key
export CF_Key="sdfsdfsdfljlbjkljlkjsdfoiwje"
# 账号邮箱
export CF_Email="xxxx@sss.com"
# 创建令牌,选择编辑区域 DNS
export CF_Token="xxxx"

# 在 cf 域名概述下
export CF_Account_ID="xxxx"
export CF_Zone_ID="xxxx"
生成
./acme.sh --issue --dns dns_cf -d xxx.com -d *.xxx.com

成功后会在 .acme.sh/xxx.com_ecc 下生成证书

# xxx.com_ecc/ca.cer  
# xxx.com_ecc/fullchain.cer  
# xxx.com_ecc/xxx.com.cer  
# xxx.com_ecc/xxx.com.conf  
# xxx.com_ecc/xxx.com.csr  
# xxx.com_ecc/xxx.com.csr.conf  
# xxx.com_ecc/xxx.com.key

acme.sh 会监听证书过期,过期查询生成

注意, 无论是 apache 还是 nginx 模式, acme.sh在完成验证之后, 会恢复到之前的状态, 都不会私自更改你本身的配置. 好处是你不用担心配置被搞坏, 也有一个缺点, 你需要自己配置 ssl 的配置, 否则只能成功生成证书, 你的网站还是无法访问https. 但是为了安全, 你还是自己手动改配置吧.

配置 nginx

xxx.com.cerxxx.com.key 复制出来,这边是复制到 /etc/nginx/ssl

# 创建 xxx.com.conf
ssl on;
ssl_certificate ssl/xxx.com.cer;
ssl_certificate_key ssl/xxx.com.key;
// 配置到 server 即可
server {
    listen 443;
    include ssl/xxx.com.conf;
    ...
}

配置 csr 到 cf

  1. 到 cf 的 SSL/TLS -> 源服务器
  2. 创建证书
  3. 把上述生成的 xxx.com.csr 内容复制证书内
  4. SSL/TLS 加密模式,设置为完全

完成

注意,生成的证书一般情况下是 90 天,过期需要重新配置一下

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容