10小时前,Let’s Encrypt 项目宣布,ACME v2 and Wildcard Certificate Support 即日生效。我们普通用户终于可以拥有免费 Wildcard Certificate ,俗称野卡。
通配型证书(wildcard certificate)是在一个域及其所有子域上应用的数字证书。 通配型符号由一个星号和域名前的一段时间构成。 安全套接层(SSL)证书常运用通配符来扩展子域的SSL加密。
通配符SSL证书可以同时保护一个域名下的2级子域名网站,比如*. yourdomain.com,对子域名网站是没有数量限制,用户可以随时添加自己的子域名网站。
这对拥有多个2级子域名网站的站长来说无疑是个好消息,省去了管理多个域名证书的麻烦。
本文以本站域名 yalv.me为例,在 Centos 7 系统下,使用 ACME.SH 工具,介绍如何申请 Let’s Encrypt 免费通配型证书。
ACME.SH 实现了 ACME 协议支持的所有验证协议,一般有两种方式验证: HTTP 和 DNS 验证。不过,目前申请野卡必须要使用DNS 验证方式,本文介绍使用域名解析商(CloudXNS为例) API 自动 DNS 验证的方式,大大提高效率。
1. 下载相关依赖
登陆服务器,执行以下命令:
yum update -y && yum install curl -y
2. 安装 ACME.SH
curl https://get.acme.sh | sh
这样就把 ACME.SH 安装到~/.acme.sh/
目录下。
3. 获取CloudXNS的API KEY 和 Secret KEY
先将域名解析到 CloudXNS,打开apimanage申请 API ,注意需将你安装 ACME.SH 的VPS IP设置进入白名单!
export CX_Key="XXXXXX"
export CX_Secret="XXXXXXX"
输入的 API 信息,ACME.SH 会自动保存到~/.acme.sh/account.conf
中,下次申请无需再次输入。
ACME.SH 目前支持 cloudflare, dnspod, cloudxns, godaddy 以及 ovh 等数十种解析商的自动集成,更详细的 API用法: API用法。
4. 执行签发程序
~/.acme.sh/acme.sh --issue --dns dns_cx -d yalv.me -d *.yalv.me
注意:第一个 -d 后面不可以直接写 *.xx.com ,一定要写个普通单域名,第二个 -d 后面可以写泛域名。
建议使用3个 -d,即 @,www,和*.
5. 证书安装
CSR、KEY、CERT都在此路径下: /root/.acme.sh/yalv.me
官方推荐使用--installcert
命令,并指定目标位置, 然后证书文件会被copy到相应的位置, 如果你使用的lnmp1.4 环境,可以参考以下命令:
~/.acme.sh/acme.sh --installcert -d yalv.me \
--key-file /usr/local/nginx/conf/ssl/yalv.me.key \
--fullchain-file /usr/local/nginx/conf/ssl/fullchain.cer \
--reloadcmd "service nginx force-reload"
6. 更新证书
证书在 60 天以后会自动更新, 你无需任何操作。
ACME.SH 更多高级用法,请参考 ACME.SH WIKI
Vultr VPS
2018-03-26感谢分享
yalv
2018-03-28@Vultr VPS 感谢支持
UbuntuHOT
2018-04-05加油!来看看你。
yalv
2018-04-06@UbuntuHOT 哈哈,你的站现在还在做吗?
Ubuntuhot
2018-04-06@yalv 站 一直还在 只是 没有 更新了\r\n最近 证书 还 过期了 。
yalv
2018-04-06@Ubuntuhot 我说呢,怎么访问不了了。