简介

阿里云为已实名的个人或企业每年提供20张免费的DV单域名证书,每个证书有效期一年,该配额每年12月31日重置,由知名CA机构Digicert签发。适合于部署到需要中长期使用且不方便使用acme自动证书脚本的环境中。

如果你的服务器能稳定长期运行,那么我更推荐使用自动化脚本来自动申请和部署证书。
看我的这篇文章来配置acme证书脚本:https://www.hash070.top/archives/acme-sh-note-2.html

申请证书

下单免费证书

官网链接:https://www.aliyun.com/product/cas

image-20220622200554698

点击选购SSL证书,然后点击单域名证书,数量选择20,然后就可以点击购买按钮实现零元购了。

image-20220622200711168

在控制台申请证书

在阿里云控制台,找到SSL证书(应用安全)这一链接。

image-20220622200845584

按如图所示点击就可以创建证书了

image-20220622201014569

填写证书申请

点击证书申请按钮

image-20220622201234262

然后填写你要申请的证书所覆盖的域名,验证方式一般使用DNS验证。

image-20220622201152346

DNS如何设置过于简单这里就不讲了

这里着重说一下CSR生成方式

CSR是Certificate Signing Request的英文缩写,即证书请求文件,也就是证书申请者在申请数字证书时由CSP(加密服务提供者)在生成私钥的同时也生成证书请求文件,证书申请者只要把CSR文件提交给证书颁发机构后,证书颁发机构使用其根证书私钥签名就生成了证书公钥文件,也就是颁发给用户的证书。

在你自己生成密钥后,你可以用自己的根证书来签名生成证书,但是这是不受其他应用认可的。想要获得权威机构颁发的证书,你就需要向CA机构递交申请,CSR相当于是一个申请表,你可以通过CSR在不泄漏自己密钥的情况下让CA机构在核实了你的身份后为你的私钥签发证书。

默认阿里云是自动为你生成密钥和CSR申请文件并自动递交申请与获取证书的。

在这种情况下,你的密钥和证书都经手并保存在阿里云,阿里云将有机会监控使用该证书加密的流量。

如果你不信任阿里云,你可以自己生成密钥后递交CSR申请书,阿里云允许通过这种方式申请证书,而在这种情况下,阿里云只有你的申请书和证书,证书离开了密钥什么都不是,所以这种情况下是最安全的。

阿里云官方文档:https://help.aliyun.com/document_detail/42218.htm

可以结合着我的OpenSSL笔记来看:https://www.hash070.top/archives/openssl-note.html

下面我就来演示一下如何生成一个证书密钥与CSR文件

自生成密钥与CSR示例

首先生成一个名为server.key的4096位RSA密钥,4096已经是

密钥位数可以随便改变,位数越大越安全,但是会消耗更多的算力来加密和解密,会让网站变慢。

(你想搞多少位的密钥都行,只要你不嫌慢

openssl genrsa -out server.key 4096

然后用server.key生成一个CSR申请表

openssl req -new -sha256 -key server.key \
    -subj "/C=CN/ST=DEFAULT/L=DEFAULT/O=DEFAULT/CN=hash070.top" \
    -reqexts SAN \
    -config <(cat openssl.cnf <(printf "\n[SAN]\nsubjectAltName=DNS:要申请证书的域名")) \
    -out server.csr

注意,这段命令的第四行的DNS:后面写的域名一定要和证书绑定域名一致。

第二行的CN=后面的文字是该证书的名称,可以随便改。

然后使用cat命令获取该csr文件的内容,提交给阿里云就可以了。

image-20220622204418482

审核通过后点击下载证书,解压压缩包就可以看到里面的证书文件了。

image-20220622204718117

Q.E.D.