Estou obtendo resultados interessantes ao assinar um certificado de servidor final usando uma CA intermediária usando o openssl.
Eu tenho uma CA raiz que se parece com isso:
Serial Number: 14296918985177649921 (0xc668dc11960d5301)
Issuer: C=US, ST=xROOTx, L=xROOTx, O=xROOTx, CN=xROOTx
Subject: C=US, ST=xROOTx, L=xROOTx, O=xROOTx, CN=xROOTx
X509v3 Subject Key Identifier:
1A:E5:27:E9:EF:2F:90:A7:13:91:1A:12:A9:3A:1D:AE:BA:1E:B8:35
Que assinou uma CA intermediária com a seguinte aparência:
Serial Number: 0 (0x0)
Issuer: C=US, ST=xROOTx, L=xROOTx, O=xROOTx, CN=xROOTx
Subject: C=US, ST=xINTERx, O=xINTERx, CN=xINTERx
X509v3 Authority Key Identifier:
keyid:1A:E5:27:E9:EF:2F:90:A7:13:91:1A:12:A9:3A:1D:AE:BA:1E:B8:35
DirName:/C=US/ST=xROOTx/L=xROOTx/O=xROOTx/CN=xROOTx
serial:C6:68:DC:11:96:0D:53:01
X509v3 Subject Key Identifier:
16:BF:D6:2F:0D:58:A5:C3:84:95:4B:F6:FE:27:3E:0B:79:0C:6F:04
E quando eu assino o certificado de servidor final, recebo isso:
Serial Number: 1 (0x1)
Issuer: C=US, ST=xINTERx, O=xINTERx, CN=xINTERx
Subject: C=US, ST=xENDx, O=xENDx, CN=xENDx
X509v3 Authority Key Identifier:
keyid:16:BF:D6:2F:0D:58:A5:C3:84:95:4B:F6:FE:27:3E:0B:79:0C:6F:04
DirName:/C=US/ST=xROOTx/L=xROOTx/O=xROOTx/CN=xROOTx
serial:00
X509v3 Subject Key Identifier:
3B:86:64:4B:80:EE:BF:92:0D:A9:D6:FD:8C:FD:DD:FF:55:55:C6:11
Isso mostra o KeyId e o Serial corretos da CA intermediária, mas o DirName incorreto, que por algum motivo é o DN da CA raiz.