Opensslを使用して中間CAを使用してエンドサーバー証明書に署名すると、興味深い結果が得られます。
私は次のようなルートCAを持っています:
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
これは、次のような中間CAに署名しています。
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
そして、エンドサーバー証明書に署名すると、次のようになります。
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
これは、中間CAからの正しいKeyIdとSerialを示していますが、間違ったDirNameを示しています。これは、何らかの理由でルートCAのDNです。
これは正常な動作です。
Authority Key IdentifierのDirNameは、実際には発行者の発行者のサブジェクト名です。発行者のサブジェクトを含めるだけで、証明書ですでに使用可能な発行者DNが複製されます。
これはよくある質問であり、 OpenSSL FAQ でも回答されています。