黑猫

Let's Encrypt泛域名SSL证书
Let's Encrypt将免费服务提供给全世界,让昂贵的SSL变得触手可及,同时提升互联网整体的安全水平。自20...
扫描右侧二维码阅读全文
18
2018/07

Let's Encrypt泛域名SSL证书

Let's Encrypt将免费服务提供给全世界,让昂贵的SSL变得触手可及,同时提升互联网整体的安全水平。

自2015开始,Let's Encrypt便提供免费的单域名证书。很多主机服务商、CDN服务商、面板均可自动申请并续签。

2018年初,Let's Encrypt开始提供通配符证书,即一套证书可以用于所有子域名。当颁发给i.iwyc.cn时,所有一级子域名均可以使用该证书。大大的福利!

下面是申请Let's Encrypt泛域名SSL证书的教程:

一、安装acme.sh脚本

参考:acme.sh中文指南
打开终端,键入:
curl https://get.acme.sh | sh

如果提示curl命令不存在,则需要安装相关依赖。

二、验证域名

acme.sh 实现了 acme 协议支持的所有验证协议。一般有两种方式验证: http 和 dns 验证。
推荐使用DNS验证,并且配合域名解析商提供的 api 自动添加 txt 记录完成验证。这是最简单、便捷的方式。

  • 无需指定IP即可验证域名
  • 全自动化申请并续签
  • 随意使用CDN或跳转,只要不更改域名解析商,都不影响续签
    其它方式请参考官方指南。

1.登录域名解析商获取API

acme.sh 目前支持 cloudflare, dnspod, cloudxns, godaddy 以及 ovh 等数十种解析商的自动集成。

可以在官方文档-API用法中查询acme.sh支持的解析商以及对应的指令。

以DNSPOD(腾讯云)为例,在用户中心-安全设置中开启API,并将ID和Token记下来。

2.然后将API输入终端:

export DP_Id="替换为数字ID"

export DP_Key="替换为Token值"

注意,这是DNSPOD的指令,如果是其它解析商,请参照官方文档-API用法

三、生成证书

在终端中键入:
acme.sh --issue --dns dns_dp -d iwyc.cn -d *.iwyc.cn
请替换成自己的域名,*是通配符,支持任何一级子域名。
终端中会输出证书存放的位置,可以按图索骥找到证书文件。

可以看到证书包中有很多文件,其中域名.key是秘钥;a.cer存储的是CA证书,域名.cer是域名证书,fullchain.cer是前两者的拼接;域名.csr是证书签名请求。

四、使用证书

宝塔面板中,只需要将证书文件拷贝到“其他证书”中,保存即可。

基于Nginx的服务器,左侧拷贝的内容是域名.key,右侧拷贝的是fullchain.cer。基于Apache请自行搜索。

如果没有使用面板,可以在终端中使用 --installcert命令进行安装。

五、检验证书

访问myssl.com,检验证书是否安装正确。

其它

1.自动续签

安装acme.sh时,会自动创建 cronjob,每天 0:00 点自动检测所有的证书,如果快过期了, 则会自动更新证书。

2.更新acme.sh

目前由于 acme 协议和 letsencrypt CA 都在频繁的更新, 因此 acme.sh 也经常更新以保持同步.

升级 acme.sh 到最新版 :
acme.sh --upgrade
如果你不想手动升级, 可以开启自动升级:
acme.sh --upgrade --auto-upgrade
关闭自动更新:
acme.sh --upgrade --auto-upgrade 0

Last modification:February 8th, 2019 at 09:50 am
If you think my article is useful to you, please feel free to appreciate

Leave a Comment