C#でX509Certificateクラスを使う
using System.Security.Cryptography.X509Certificates名前空間のX509Certificateクラスを使ってみる。
主に、X.509証明書を読み込んで証明書の内容を取得するために使用する。
Firefox バージョン3の場合
1.メニューバーの「ツール」→「オプション」から「オプション」ダイアログを表示
2.「オプション」ダイアログのメニューバー(ダイアログの上のほうにあるアイコンが並んでいるところ)から一番右側にある「詳細」を選択する
3.「暗号化」タブの「証明書」グループボックスから「証明書を表示」ボタンをクリックする
4.「証明書マネージャ」から「認証局証明書」タブを表示
5.「証明書名と発行者名」のリストから適当な証明書を選択する。ここでは、例として、RSA Security Incの「RSA Security 2048 v3」を選択する
6.証明書を選択したら、証明書マネージャの「エクスポート」ボタンから証明書を適当なフォルダにエクスポートする。このとき「証明書をファイルに保存」が表示されるが、ファイル名が「BuiltinObjectToken-RSASecurity1024v3.crt」になる。
ここまでが、System.Security.Cryptography.X509Certificates.X509Certificateクラスを使うための準備
実際にエクスポートしたX.509証明書から情報を取得して表示するコードは、以下の通り
using System; using System.Collections.Generic; using System.Text; using System.Security.Cryptography.X509Certificates; class Program { public static void Main() { //X509Certificateオブジェクトを生成する。 //X509Certificate.CreateFromCertFileの引数には、 //エクスポートしたファイル名を指定する。 X509Certificate x509 = X509Certificate.CreateFromCertFile(@"BuiltinObjectToken-RSASecurity2048v3.crt"); Console.WriteLine("X.509v3証明書の発行先であるプリンシパルの名前(古い形式)"); Console.WriteLine(x509.GetName()); Console.WriteLine(Environment.NewLine); Console.WriteLine("X.509v3証明書を発行した証明機関の名前"); Console.WriteLine(x509.Issuer); Console.WriteLine(Environment.NewLine); Console.WriteLine("X.509v3証明書のサブジェクトの識別名"); Console.WriteLine(x509.Subject); Console.WriteLine(Environment.NewLine); Console.WriteLine("X.509v3証明書のハッシュ値の16進文字列"); Console.WriteLine(x509.GetCertHashString()); Console.WriteLine(Environment.NewLine); Console.WriteLine("X.509v3証明書の発効日"); Console.WriteLine(x509.GetEffectiveDateString()); Console.WriteLine(Environment.NewLine); Console.WriteLine("X.509v3証明書の失効日"); Console.WriteLine(x509.GetExpirationDateString()); Console.WriteLine(Environment.NewLine); Console.WriteLine("X.509v3証明書を発行した証明機関の名前(古い形式)"); Console.WriteLine(x509.GetIssuerName()); Console.WriteLine(Environment.NewLine); Console.WriteLine("X.509v3証明書のキーアルゴリズム情報"); Console.WriteLine(x509.GetKeyAlgorithm()); Console.WriteLine(Environment.NewLine); Console.WriteLine("X.509v3証明書のキーアルゴリズムパラメータ"); Console.WriteLine(x509.GetKeyAlgorithmParametersString()); Console.WriteLine(Environment.NewLine); Console.WriteLine("X.509v3証明書の公開鍵"); Console.WriteLine(x509.GetPublicKeyString()); Console.WriteLine(Environment.NewLine); Console.WriteLine("X.509v3証明書のシリアル番号"); Console.WriteLine(x509.GetSerialNumberString()); Console.WriteLine(Environment.NewLine); Console.WriteLine("X.509v3証明書の形式の名前"); Console.WriteLine(x509.GetFormat()); Console.WriteLine(Environment.NewLine); Console.WriteLine("X.509証明書全体の生データ"); Console.WriteLine(x509.GetRawCertDataString()); Console.WriteLine(Environment.NewLine); } }
X.509v3証明書の発行先であるプリンシパルの名前(古い形式) O=RSA Security Inc, OU=RSA Security 2048 V3 X.509v3証明書を発行した証明機関の名前 OU=RSA Security 2048 V3, O=RSA Security Inc X.509v3証明書のサブジェクトの識別名 OU=RSA Security 2048 V3, O=RSA Security Inc X.509v3証明書のハッシュ値の16進文字列 25019019CFFBD9991CB76825748D945F30939542 X.509v3証明書の発効日 2001/02/23 5:39:23 X.509v3証明書の失効日 2026/02/23 5:39:23 X.509v3証明書を発行した証明機関の名前(古い形式) O=RSA Security Inc, OU=RSA Security 2048 V3 X.509v3証明書のキーアルゴリズム情報 1.2.840.113549.1.1.1 X.509v3証明書のキーアルゴリズムパラメータ 0500 X.509v3証明書の公開鍵 3082010A0282010100B78F5571D280DD7B6979A7F01850323C6267F60A9507DDE61BF39ED9D24154 6BAD9F7CBE19CDFB46AB41681E18EA55C82F91788928FB272960FFDF8F8C3BC9499BB5A494CE01EA 3EB5637B7F26FD19DDC021BD84D12D4F46C34EDCD837393B28AFCB9D1AEA2BAF21A5C12322B8B81B 5A13875783D1F020E7E84F2342B000A57D89E9E9617394987126BC2D6AE0F74DF0F1B62A3831810D 29E100C1510F4C52F8045AAA7D72D3B8872ABB6310032AB3A14F0D5A5E46B73D0EF574EC999FF93D 248188A6DD6054E895363DC609939AA312800055991947BDD0A57CC3BAFB1FF7F50FF8ACB9B5F437 981318DE855BB70C823B876F95395830DA6E01681722CCC00B0203010001 X.509v3証明書のシリアル番号 0A0101010000027C0000000A00000002 X.509v3証明書の形式の名前 X509 X.509証明書全体の生データ 3082036130820249A00302010202100A0101010000027C0000000A00000002300D06092A864886F7 0D0101050500303A31193017060355040A131052534120536563757269747920496E63311D301B06 0355040B13145253412053656375726974792032303438205633301E170D30313032323232303339 32335A170D3236303232323230333932335A303A31193017060355040A1310525341205365637572 69747920496E63311D301B060355040B131452534120536563757269747920323034382056333082 0122300D06092A864886F70D01010105000382010F003082010A0282010100B78F5571D280DD7B69 79A7F01850323C6267F60A9507DDE61BF39ED9D241546BAD9F7CBE19CDFB46AB41681E18EA55C82F 91788928FB272960FFDF8F8C3BC9499BB5A494CE01EA3EB5637B7F26FD19DDC021BD84D12D4F46C3 4EDCD837393B28AFCB9D1AEA2BAF21A5C12322B8B81B5A13875783D1F020E7E84F2342B000A57D89 E9E9617394987126BC2D6AE0F74DF0F1B62A3831810D29E100C1510F4C52F8045AAA7D72D3B8872A BB6310032AB3A14F0D5A5E46B73D0EF574EC999FF93D248188A6DD6054E895363DC609939AA31280 0055991947BDD0A57CC3BAFB1FF7F50FF8ACB9B5F437981318DE855BB70C823B876F95395830DA6E 01681722CCC00B0203010001A3633061300F0603551D130101FF040530030101FF300E0603551D0F 0101FF040403020106301F0603551D2304183016801407C35130A4AAE945AE3524FAFF242C33D0B1 9D8C301D0603551D0E0416041407C35130A4AAE945AE3524FAFF242C33D0B19D8C300D06092A8648 86F70D010105050003820101005F3E86766EB8353C4E361C1E7998BFFDD5121179520EEE3189BCDD 7FF9D1C61521E88A01540D3AFB54B9D663D4B1AA964DA2424DD4531F8B10DE7F65BE6013277188A4 73E38463D1A455E15093E61B0E79D067BC46C8BF3F170D95E6C69069DEE7B42FDE957DD0123F3D3E 7F4D3F1468F51150D5C1F490A5081D3160FF608C23540AAFFEA16EC5D17A2A6878CF1E820A20B41F ADE585B26A68754EAD25379485BEBDA1D4EAB70C4B3C9DE81200F05FAC0DE1AC706373F77F799F32 254274058028BFBDC124965815B11721E9894BDB078867F415AD703E2F4D853BC2B7DBFE98682389 E1740FDEF4C58463291BCCCB07C900A4A9D7C2224F67D777EC200561DE