Compnet

仕事とか遊びとか、日々折々

2015-07-10(金)

Windows で作った自己署名証明書を調べる

Posted by Nakane, R. in technical   

Note

この記事は旧ブログから移行した記事です。 元記事は ここ にあります。

Azure に ポイント対サイト (P2S) 接続をする際に必要な、ルート証明書とクライアント証明書をWindows の makecert.exe コマンドを使って作成する方法を前の記事で書いた。 同じことを Linux の OpenSSL を使って試そうと思う。 それに先だって、makecert.exe で作った証明書の内容を調べておく。

鍵

なお、以下のコマンドは特に断りが無い限り、すべて Ubuntu 14.04 LTS で実行している。

Windows で作ったルート証明書を調べる

まずは、前の記事で作ったルート証明書のファイル RootCertificate.cer を Linux にコピーする。 コピーの方法は何でも良いが、RootCertificate.cer はバイナリ ファイルなので FTP 等でコピーするときは間違えないようしたい。

ルート証明書のファイル RootCertificate.cer を Linux にコピーしたら、以下のコマンドを実行する。 前の記事のようにして Windows の makecert.exe で作成した証明書のファイルは DER 形式で保存されている。 このため、-inform der オプションを追加している。

openssl x509 -in RootCertificate.cer -inform der -noout -text
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
             (Negative)43:8d:3b:8d:f4:3c:90:57:b1:c6:4c:72:eb:91:25:95
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: CN=SelfCertificateRoot
        Validity
            Not Before: Jul 10 05:09:03 2015 GMT
            Not After : Dec 31 23:59:59 2039 GMT
        Subject: CN=SelfCertificateRoot
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:c3:56:e5:39:3d:38:47:36:57:15:d5:3b:a4:db:
                    24:17:a3:42:01:ac:dd:40:4f:41:ac:82:71:b0:39:
                        :
                    (途中省略)
                        :
                    02:c3:5c:ad:a1:a7:84:cf:a1:b7:ee:24:57:ef:19:
                    66:a7
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            2.5.29.1:
                0F.........."&D."pg4. 0.1.0...U....SelfCertificateRoot...r.r..o.N9...n.k
    Signature Algorithm: sha256WithRSAEncryption
         59:dc:47:ec:e9:96:0e:1d:47:8d:70:23:90:b1:99:c2:95:0b:
         73:a7:77:99:15:6f:e4:f1:58:b6:3d:17:ee:f8:9c:00:fa:99:
             :
         (途中省略)
             :
         cc:66:da:61:32:28:ed:72:bf:66:d7:f6:25:60:ae:f7:67:9e:
         ec:78:09:b0

証明書のハッシュ方式とキー長は makecert.exe のオプションで指定したとおり SHA256 と 2048bit になっている。 Subject 欄も makecert.exe の -n オプションで指定したとおりだ。 また、自己署名証明書として作成しているので、Issuer 欄が Subject 欄と同じ値になっている。 有効期限は特に指定しなかったが、これを見るとほぼ 270 ヶ月になるようだ。

また、当然かもしれないが、秘密鍵がここには含まれていない。 証明書ストアに保存された証明書には秘密鍵が含まれるはずのなので、クライアント証明書を作るときに証明書ストアに保存したルート証明書を指定する理由は、ここにあるのだろう。

ところで、X509v3 extensions 欄が文字化けしているように見えるのが若干気持ち悪い。

Comments