X509 SSL証明書とそれが署名された中間CA証明書とルートCA証明書を含むPKCS#7の署名付き.p7bファイルがあります。私はC#を使用して.p7bファイルを解析し、SSL証明書を取り出し、それからいくつかの値を取り出す必要があります(有効期限、DNなど)。PKCS#7 SSL証明書チェーン(.p7b)を秘密鍵なしで解析しますか?
私はそうのようなX509証明書として、それを読んで試してみた:通常の.cerの証明書を使用して正常に動作しますが、.P7B証明書で使用する場合CryptographicException
をスロー
//certContent is a byte array with the p7b file contents
X509Certificate2 cert = new X509Certificate2(certContent);
。これは、.p7bに証明書チェーン全体が含まれているためです。
私はまた、証明書チェーンを反復処理し、私のSSL証明書を引き出し、SignedCms
オブジェクトとしてそれを解析してみた:
SignedCms certContainer = new SignedCms();
certContainer.Decode(certContent);
foreach(X509Certificate2 cert in certConatiner.Certificates)
{
...
}
ことがASN1 bad tag value met
を言っDecode
に例外がスローされますが。いくつかの検索の後、証明書の作成や証明書への署名に使用された秘密鍵がないためと考えています。
私はこのC#を使用してこの.p7b証明書チェーンを解析する方法を知っていますか?
これは私が問題を抱えていることです。データベースからバイトを取得し、それをX509Certificateに変換するコードの部分を共有してください。ありがとう – daehaai