跳到主要内容

Certificate(SSL 证书)

NameTypeRelation WithDescription
privateKeyText私钥内容
contentText证书体内容
nameText(short text)证书名称(可以为空)
userRelationUser
startTimeDateTime有效期起始时间
endTimeDateTime有效期结束时间
commonNameText(short text)通用名称
dnsNamesText其它DNS名称
caText颁发机构
cdnDomainsRelation(一对多)CDN Domain

添加证书

用户添加证书时,privateKeycontent 字段是必填项,startTimeendTimecommonName、'dnsNames'、 'ca' 字段由证书解析而来,不可由用户填写。

在添加证书页面,需要给用户列出匹配证书的 commonNamednsName 的所有域名,以便用户将证书和域名关联,然后调用上游接口设置并启用证书。

为证书关联域名时,有两种情况:一是域名未关联任何证书,这时直接设置即可;二是域名已有关联的证书,这时就是调用上游接口更新证书了,TODO:此时会有旧证书的处理问题,暂时先忽略。

TODO:由于上游有自己的证书管理系统,并且为每个证书分配了ID,这样,上游就能通过证书ID与域名关联了。但是,在我们的系统中接入的是多个厂商,这就面临一个情况:我们系统里管理的证书要与每个上游的证书管理对应起来,这会增加我们系统的复杂度,因此,我们做如下简化处理:我们忽略上游对证书的管理(也就是上游为上传的证书所分配的 ID),将我们自己的证书管理作为唯一来源,每次为域名设置证书时都让上游作为新添加证书,即便证书已经在上游存在了。

成功调用上游接口添加或更新证书之后,需要消息队列根据上游返回的 CertificateId 查询一下证书的详细信息并回填到域名的 config.Certificate 字段,后续前端页面展示域名所关联的证书的详细信息时需从域名的 config.Certificate 字段获取。

更新证书

不允许修改已经添加的证书,只能上传新证书。然后将新证书应用到域名上,或者在域名配置页面选择证书重新配置。

删除证书

删除证书前,需要让用户解绑与待删除证书关联的所有域名。没有关联域名的证书可以由用户操作直接从数据库中删除。

对于已经失效且没有关联域名的证书,在页面上要标记该证书已过期且XX天之后将自动删除。由后台巡检程序定期检查并删除。