等了好久好久,今天终于见到你了。
首先你可以查看下官方提供的支持申请通配符证书的客户端列表:https://letsencrypt.org/docs/client-options/。
这些客户端支持最新的ACME v2接口,而这个接口目前已经正式支持申请通配符证书啦。
这里,我使用acme.sh(https://github.com/Neilpang/acme.sh)这个Client,它是直接在bash下运行,使用非常简单,而且支持大多数DNS服务器的API自动验证!
1、安装acme.sh
curl https://get.acme.sh | sh
一句话完成安装,安装过程分为:
1)复制acme.sh的程序文件到当前用户主目录,比如root用户的:~/.acmh.sh目录下
2)创建一个alias:acme.sh=~/.acme.sh/acme.sh
2、装完后,就可以开始申请证书了,这里我用的是阿里云的DNS,所以为了能配合完成自动验证,需要在acme.sh的配置中写入阿里云的密钥信息:
vim ~/.acmh.sh/account.conf #添加阿里云密钥,改成自己的 Ali_Key="xxxx" Ali_Secret="xxxxx"
3、最后,重点来了,通配符证书申请命令(以我自己的域名为例):
acme.sh --issue -d coderecord.cn -d *.coderecord.cn --dns dns_ali
注意,这里–dns参数使用的是dns_ali,告诉acme.sh使用阿里云的DNS接口去自动验证。(好处:全程无干预,不需要暂停web服务器!)
4、查看生成的证书文件,证书默认生成在:~/.acme.sh/coderecord.cn下:
5、最后,就是配置Apache、NGINX啦。这里以Apache为例子:
首先我们要把生成的证书文件复制出来,这里我放到/etc/apache2/ssl/目录下,运行下面命令:
acme.sh --install-cert -d coderecord.cn \ --cert-file /etc/apache2/ssl/coderecord.cn-cert.pem \ --key-file /etc/apache2/ssl/coderecord.cn-key.pem \ --fullchain-file /etc/apache2/ssl/letsencrypt.pem
一共用到三个文件,然后再配置apache的ssl配置,主要是这三个参数的文件位置要修改:
SSLCertificateFile /etc/apache2/ssl/coderecord.cn-cert.pem SSLCertificateKeyFile /etc/apache2/ssl/coderecord.cn-key.pem SSLCertificateChainFile /etc/apache2/ssl/letsencrypt.pem
最后reload下apache。
ps:本站的www已经切换为通配符证书啦。
在配置过程中,如果有问题,可以参考:https://github.com/Neilpang/acme.sh/wiki