使用ACME自颁发免费SSL证书
本篇主要目的是为启用BTP Custom Domain整体流程中,涉及到的CA机构颁发的SSL证书环节,如下图橙色部分所示,使用自颁发的方式临时启用Custom Domain的。其中涉及的CA机构是Let's Encrypt。

前期准备工作
- 本机安装ACME, 安装教程
curl https://get.acme.sh | sh -s email=sam@sap.com
export ACME=/Users/I304185/.acme.sh
export PATH=$ACME$PATH
acme.sh --set-default-ca --server letsencrypt
- 准备好CSR。由BTP Custom Domian生成好的CSR文件,参看自定义域名服务ui新功能 中,《管理服务器证书》章节。
- 拥有域名管理员权限。能够添加DNS解析的权限。
自颁发证书中会涉及到自动和手动方式。针对于自动DNS,支持的域名机构请参看域名机构名单 。手动方式需要有DNS管理添加DNS记录完成验证工作。以下会分别针对两种方式完成自颁发证书的操作指南。
自动DNS API生成证书(阿里云为例)
自动生成证书以阿里云为例,购买的域名和DNS服务由阿里云负责运维。
- 创建Aliyun RAM账号并且分配DNS控制权限。
登录阿里云管理员RAM管理员界面,创建RAM用户同事分配DNS管理权限。并且记录下AccessKey ID和AccessKey Secret用于后面API调用时使用。


- 写入第一步获得的ID和Secret,设置环节变量。
export Ali_Key="LTAI5tA*****N57aZEjL3gz"
export Ali_Secret="xd2OwMnpAf*****F6E1oXBuRFmsk"
- 进入CSR所载路径,开始颁发证书
acme.sh --signcsr --dns dns_ali --csr samisu-csr.pem


- 合并Fullchain.cer和Let's Encryt根证书
下载[ISRG Root X1.cer](https://blog-1310245433.cos.ap-shanghai.myqcloud.com/File/ISRG Root X1.cer)到Fullchain.cer的目录下
cat fullchain.cer ISRG\ Root\ X1.cer > samisu.pem

- Copy 新生成的pem的内容去Custom Domain激活


手动DNS生成证书
有一些DNS机构不支持API的方式调用DNS的服务,因此需要手动方式验证生成证书。
- Issue生成DNS TXT记录
acme.sh --issue -d "*.shibei.samisu.cn" -d "shibei.samisu.cn" --dns
--yes-I-know-dns-manual-mode-enough-go-ahead-please

- 在DNS服务中,添加TXT的记录
在第一步生成的TXT的记录,需要DNS的管理去管理域名记录,添加上面产生的记录。

3.DNS记录生效检查
因为DNS同步需要一些时间,需要去检查记录是否生效。通常5-10分钟就能生效。
nslookup -q=txt _acme-challenge.shibei.samisu.cn

- 执行Renew操作,完成CA验证TXT的记录
acme.sh --renew -d "*.shibei.samisu.cn" -d "shibei.samisu.cn" --yes-I-know-dns-manual-mode-enough-go-ahead-please

此时会产生一个未用CSR生成的证书,因此我们需要删除系统产生无用证书的文件夹。文件夹的地址请参考最后生成时的目录。
rm -r ~/.acme.sh/*.shibei.samisu.cn_ecc
- 利用BTP生成CSR生成新证书
acme.sh --signcsr --dns --csr shibei-csr.pem --yes-I-know-dns-manual-mode-enough-go-ahead-please


7.剩下的操作可以参考自动生成5-6步骤操作

到此为止关于自动DNS颁发和手动DNS颁发SSL证书的操作就算全部结束了。
注意:自颁发的SSL的证书通常有效期为90天,因此想要长期稳定使用可以采买官方机构的颁发一年有效期的证书。

浙公网安备 33010602011771号