不,当证书被签署时,证书的TBS字段被签署。如您所见,TBS 文件包含一个主题 字段。
Certificate ::= SEQUENCE {
tbsCertificate TBSCertificate,
signatureAlgorithm AlgorithmIdentifier,
signatureValue BIT STRING }
TBSCertificate ::= SEQUENCE {
version [0] EXPLICIT Version DEFAULT v1,
serialNumber CertificateSerialNumber,
signature AlgorithmIdentifier,
issuer Name,
validity Validity,
subject Name,
subjectPublicKeyInfo SubjectPublicKeyInfo,
issuerUniqueID [1] IMPLICIT UniqueIdentifier OPTIONAL,
-- If present, version MUST be v2 or v3
因此,您不能更改 TBS 中的字段。要么继续而不更改证书(主题),要么使用其他人的凭据创建新证书。但为此,您必须停用您的应用程序。并上传一个新的应用程序(不是作为更新,而是作为一个新应用程序),我认为这不是一个好的解决方案。因此,最好继续使用您的证书。
它不关心实际的“详细信息”(证书 DN、序列号等),而只是将证书作为二进制 blob 进行比较,如此处所述。由于证书不同,您无法将最初使用 cert1 签名的应用程序更新为使用 cert2 签名的另一个应用程序。