証明書の情報をプログラムで取得する


仕事で必要になったので、VB.NETで作ってみた。
分かってしまえば簡単。

Imports System.Security.Cryptography.X509Certificates

Module Module1

    Sub Main()

        Dim values As X509Certificate2Collection
        Dim value As X509Certificate2
        
    '信頼されたルート証明機関をつかう
        Dim store As New X509Store(StoreName.Root, StoreLocation.CurrentUser)
    
    'ReadOnlyで開く
        store.Open(OpenFlags.ReadOnly)

        values = store.Certificates
    
    '現時点で有効な証明書を絞り込み
        values = values.Find(X509FindType.FindByTimeValid, Now, True)
    '発行者情報にMicrosoftとある証明書を絞り込み
        values = values.Find(X509FindType.FindByIssuerName, "Microsoft", True)

    '該当する証明書の情報を表示する
        For i As Integer = 0 To values.Count - 1

            Console.WriteLine("#" & i & "Certificate")

            value = values.Item(i)
            Console.WriteLine(value.Issuer)     '発行した証明機関
            Console.WriteLine(value.NotAfter)   '証明書の有効期限
            Console.WriteLine(value.NotBefore)  '証明書が有効になる日付
            Console.WriteLine(value.Subject)    'サブジェクト識別名

        Next

        store.Close()

    End Sub

End Module


<プログラムでデジタル証明書をインストールするには?>
http://www.atmarkit.co.jp/fdotnet/dotnettips/844addcert/addcert.html