2と3のリビジョン間の差分
2016-05-01 07:19:03時点のリビジョン2
サイズ: 5725
コメント:
2016-05-01 08:09:49時点のリビジョン3
サイズ: 16317
コメント:
削除された箇所はこのように表示されます。 追加された箇所はこのように表示されます。
行 73: 行 73:
=== 署名情報 === ==== 署名情報 ====
行 79: 行 79:
=== RSA暗号パラメータ === ==== RSA暗号パラメータ ====
行 89: 行 89:
=== 属性(Attributes) === ==== 属性(Attributes) ====
行 94: 行 94:

=== コマンド ===
サブジェクト(主体者)のディスティングイッシュ名を取得する。
{{{
openssl req -noout -subject -in CSRファイル名.csr

}}}

=== 実行結果 ===
{{{
subject=/CN=wiki.ninth-nine.com
}}}

=== コマンド ===
モジュロを取得する。取得するだけだと何する?なので、秘密鍵と対になっているか確認する。
{{{
diff -u <(openssl req -noout -modulus -in CSRファイル名.csr) <(openssl rsa -noout -modulus -in 秘密鍵ファイル名.key)

}}}

※`<()`というイディオム(実行結果をテンポラリファイル名で渡してくれる)は zsh/bash 拡張なので、シェルスクリプト(sh/ash/ksh)中では使わないこと。

=== 実行結果 ===
{{{
}}}
空の結果が正常。差分が発生した場合、CSRと秘密鍵は一致していない。{{{diff}}} の代わりに{{{cmp}}}を使うでも良い。

== 署名済公開鍵(CRT)の確認 ==
 * 署名済み公開鍵のことをcertificateと呼ぶがCSRのように明確に定義(省略形)しているのは無いが、比較的、一般的に通じる「CRT」で通すものとする。もちろん秘密鍵は「KEY」で。
 * 大枠は `-text` オプションを指定することになるが、個別にデータを取りたい場合のオプションを解説する。

=== コマンド ===
{{{
openssl x509 -noout -text -in CRTファイル名.crt

}}}

=== 実行結果例 ===
{{{
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            03:e1:0f:20:74:80:01:0b:82:f8:ad:53:39:d8:74:30:4f:02
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3
        Validity
            Not Before: Apr 30 09:08:00 2016 GMT
            Not After : Jul 29 09:08:00 2016 GMT
        Subject: CN=wiki.ninth-nine.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:c3:6e:81:a0:ca:e8:d2:6a:b9:f1:ef:23:c2:3e:
                    80:c6:77:fa:e1:57:89:07:bd:10:16:db:b2:40:e9:
                    d5:85:24:e5:3f:84:ac:f7:60:07:7a:f7:62:aa:9f:
                    eb:f5:ee:da:4e:ff:13:06:d7:77:c7:29:dd:7e:89:
                    68:75:38:ca:5a:10:c6:d5:8e:7a:95:5b:59:90:5b:
                    59:9c:17:74:69:ea:fe:d7:a9:91:af:01:c6:cb:d9:
                    95:cc:0b:27:a3:c3:af:f7:eb:e8:e2:3a:99:ba:1a:
                    9e:fc:db:fe:d5:b7:fd:8e:81:da:ad:79:dd:eb:19:
                    b2:bb:8a:1d:04:b6:fa:bb:49:4d:a7:e1:43:42:05:
                    b6:45:1b:83:5f:52:12:d9:97:05:07:ff:92:7a:96:
                    8d:f3:19:7b:9d:0b:cf:01:54:1c:5d:41:87:5d:11:
                    e8:d1:9b:03:7a:b3:16:31:55:9f:b5:37:88:93:40:
                    d6:29:95:df:68:24:e8:6b:5a:f5:50:fc:9b:55:13:
                    8a:dd:2b:88:19:93:14:de:a7:bc:b5:6a:1c:8f:04:
                    67:74:6b:fd:b9:ab:56:ca:e7:04:63:63:2c:cc:0a:
                    cc:f9:cf:b0:58:db:c5:fa:0b:08:ab:6c:5a:5c:9e:
                    c1:c2:29:72:b0:cb:c3:0b:aa:4f:48:aa:0a:cf:3c:
                    8a:b1
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment
            X509v3 Extended Key Usage:
                TLS Web Server Authentication, TLS Web Client Authentication
            X509v3 Basic Constraints: critical
                CA:FALSE
            X509v3 Subject Key Identifier:
                8A:69:F2:2E:DC:EB:A9:23:52:A3:36:3A:3A:D7:2E:B1:A2:D6:37:84
            X509v3 Authority Key Identifier:
                keyid:A8:4A:6A:63:04:7D:DD:BA:E6:D1:39:B7:A6:45:65:EF:F3:A8:EC:A1

            Authority Information Access:
                OCSP - URI:http://ocsp.int-x3.letsencrypt.org/
                CA Issuers - URI:http://cert.int-x3.letsencrypt.org/

            X509v3 Subject Alternative Name:
                DNS:wiki.ninth-nine.com
            X509v3 Certificate Policies:
                Policy: 2.23.140.1.2.1
                Policy: 1.3.6.1.4.1.44947.1.1.1
                  CPS: http://cps.letsencrypt.org
                  User Notice:
                    Explicit Text: This Certificate may only be relied upon by Relying Parties and only in accordance with the Certificate Policy found at https://letsencrypt.org/repository/

    Signature Algorithm: sha256WithRSAEncryption
         45:d6:01:67:fd:77:08:09:c4:42:83:7b:dd:53:eb:89:7f:8c:
         d3:8e:e6:f7:e4:17:0b:db:21:a0:aa:e8:64:60:59:b8:cc:0c:
         11:3b:34:14:dc:4a:6c:5a:55:1e:57:ff:3c:86:eb:c8:9e:17:
         04:92:b7:e0:9c:90:4f:b6:8f:a4:41:fc:3e:f5:9b:78:eb:28:
         af:1c:4a:7d:20:ba:76:7e:24:76:cf:d1:16:07:d3:3a:8f:42:
         53:5e:dd:74:31:b8:77:43:d5:19:bf:2a:fd:5e:e0:c1:e3:af:
         61:fe:7c:0b:01:bb:12:10:c5:64:5a:a6:8b:fb:a9:18:cc:f2:
         3c:79:1a:83:be:aa:05:ec:08:2d:05:cc:31:24:ab:81:2c:95:
         7c:9c:02:5b:a3:ea:38:3c:b1:38:be:71:df:ec:6a:76:9a:86:
         19:8c:02:71:ff:16:40:2f:6e:41:cb:81:44:b8:57:f9:85:ae:
         6e:fd:90:32:1f:e8:b5:ed:fb:15:d3:8c:c3:c4:ee:2f:dc:61:
         26:81:73:08:06:2d:de:b0:b5:48:07:3e:75:5d:3b:bc:9e:fb:
         01:a7:cc:4e:c9:32:2a:99:19:26:2c:78:84:f5:58:04:75:77:
         19:f9:a6:e6:2a:e2:7a:73:61:39:df:81:44:91:04:e8:15:61:
         05:f5:19:5c
}}}

この結果から以下のことがわかる。

==== 署名情報 ====
||<#FFFF00> ラベル名 ||<#FFFF00> 内容 ||<#FFFF00> 意味 ||<#FFFF00> 備考 ||
|| Subject || CN=wiki.ninth-nine.com || サブジェクト(主体者)のディスティングイッシュ名 || ||
|| Issuer || C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3 || イシュア(発行者)のディスティングイッシュ名 || ||
|| Not Before || Apr 30 09:08:00 2016 GMT || 有効期限(開始日時) || ||
|| Not After || Jul 29 09:08:00 2016 GMT || 有効期限(終了日時) || ||
|| Public Key Algorithm || rsaEncryption || 公開鍵暗号アルゴリズムはRSA暗号 || ||
|| Signature Algorithm || sha256WithRSAEncryption || 署名アルゴリズムは SHA256 || ||

==== RSA暗号パラメータ ====
||<#FFFF00> ラベル名 ||<#FFFF00> 内容 ||<#FFFF00> 意味 ||<#FFFF00> 備考 ||
|| Public-Key || 2048 bit || 2048bit 公開鍵 || ||
|| Modulus || モジュロ(2048bit 分) || モジュロ || 秘密鍵のモジュロと一致 ||
|| Exponent || 65537 (0x10001) || 冪指数         || 65537 を明示 ||

RSA暗号パラメータ(モジュロや冪指数)については以下の文献が詳しい。
 * [[http://akademeia.info/index.php?RSA%B0%C5%B9%E6|RSA暗号]]
 * [[http://d.hatena.ne.jp/ozuma/20130510/1368114329|opensslでRSA暗号と遊ぶ]]

==== 属性(Attributes) ====
||<#FFFF00> ラベル名 ||<#FFFF00> 内容 ||<#FFFF00> 意味 ||<#FFFF00> 備考 ||
|| X509v3 Key Usage || Digital Signature, Key Encipherment || 証明書の用途(電子署名と鍵暗号) || ||
|| X509v3 Extended Key Usage || TLS Web Server Authentication, TLS Web Client Authentication || 証明書の拡張用途(SSLサーバー証明、SSLクライアント証明) || ||
|| X509v3 Basic Constraints || CA:FALSE || 署名チェインの可否(しない) || ||
|| X509v3 Subject Alternative Name || DNS:wiki.ninth-nine.com || SAN || ||

=== コマンド ===
サブジェクト(主体者)やイシュア(発行者)のディスティングイッシュ名を取得する。もちろんオプションは別々に指定可能。
{{{
openssl req -noout -subject -issuer-in CRTファイル名.crt

}}}

=== 実行結果 ===
{{{
subject= /CN=wiki.ninth-nine.com
issuer= /C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
}}}

=== コマンド ===
有効期限(開始日時あるいは終了日時)を取得する。もちろんオプションは別々に指定可能。
{{{
openssl x509 -noout -startdate -enddate -in openssl x509 -noout -startdate -enddate -in CRTファイル名.crt

}}}

=== 実行結果 ===
{{{
notBefore=Apr 30 09:08:00 2016 GMT
notAfter=Jul 29 09:08:00 2016 GMT
}}}

=== コマンド ===
モジュロを取得する。取得するだけだと何する?なので、秘密鍵と対になっているか確認する。
{{{
diff -u <(openssl x509 -noout -modulus -in CRTファイル名.crt) <(openssl rsa -noout -modulus -in 秘密鍵ファイル名.key)

}}}

※`<()`というイディオム(実行結果をテンポラリファイル名で渡してくれる)は zsh/bash 拡張なので、シェルスクリプト(sh/ash/ksh)中では使わないこと。

=== 実行結果 ===
{{{
}}}
空の結果が正常。差分が発生した場合、CRTと秘密鍵は一致していない。{{{diff}}} の代わりに{{{cmp}}}を使うでも良い。
行 98: 行 281:
 * [[https://www.ipa.go.jp/security/pki/033.html|電子証明書]]
行 100: 行 282:
 * PKI一般について
   * [[https://www.ipa.go.jp/security/pki/033.html|電子証明書]]
   * [[https://www.nic.ad.jp/ja/newsletter/No23/080.html|PKIとは]]

OpenSSL

よくあるOpenSSLの使い方を紹介する。OpenSSLはバージョン毎でできることが違うので注意。違いが顕著なところについてはOS毎に解説する。

SSL証明書発行関連について別項目で紹介する。

署名リクエスト(CSR)の確認

  • CSRの内容を確認する。

  • 大枠は -text オプションを指定することになるが、個別にデータを取りたい場合のオプションを解説する。

コマンド

openssl req -noout -text -in CSRファイル名.csr

実行結果例

Certificate Request:
    Data:
        Version: 2 (0x2)
        Subject: CN=wiki.ninth-nine.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:c3:6e:81:a0:ca:e8:d2:6a:b9:f1:ef:23:c2:3e:
                    80:c6:77:fa:e1:57:89:07:bd:10:16:db:b2:40:e9:
                    d5:85:24:e5:3f:84:ac:f7:60:07:7a:f7:62:aa:9f:
                    eb:f5:ee:da:4e:ff:13:06:d7:77:c7:29:dd:7e:89:
                    68:75:38:ca:5a:10:c6:d5:8e:7a:95:5b:59:90:5b:
                    59:9c:17:74:69:ea:fe:d7:a9:91:af:01:c6:cb:d9:
                    95:cc:0b:27:a3:c3:af:f7:eb:e8:e2:3a:99:ba:1a:
                    9e:fc:db:fe:d5:b7:fd:8e:81:da:ad:79:dd:eb:19:
                    b2:bb:8a:1d:04:b6:fa:bb:49:4d:a7:e1:43:42:05:
                    b6:45:1b:83:5f:52:12:d9:97:05:07:ff:92:7a:96:
                    8d:f3:19:7b:9d:0b:cf:01:54:1c:5d:41:87:5d:11:
                    e8:d1:9b:03:7a:b3:16:31:55:9f:b5:37:88:93:40:
                    d6:29:95:df:68:24:e8:6b:5a:f5:50:fc:9b:55:13:
                    8a:dd:2b:88:19:93:14:de:a7:bc:b5:6a:1c:8f:04:
                    67:74:6b:fd:b9:ab:56:ca:e7:04:63:63:2c:cc:0a:
                    cc:f9:cf:b0:58:db:c5:fa:0b:08:ab:6c:5a:5c:9e:
                    c1:c2:29:72:b0:cb:c3:0b:aa:4f:48:aa:0a:cf:3c:
                    8a:b1
                Exponent: 65537 (0x10001)
        Attributes:
        Requested Extensions:
            X509v3 Subject Alternative Name:
        Requested Extensions:
            X509v3 Subject Alternative Name:
                DNS:wiki.ninth-nine.com
    Signature Algorithm: sha256WithRSAEncryption
         10:47:1a:72:c3:31:f8:fb:a7:ae:70:c9:2a:8d:92:59:fd:10:
         ed:d0:88:03:03:b8:4e:95:ea:ba:1f:a6:2e:5e:46:f7:7e:11:
         f3:c9:ce:1f:9c:92:3a:76:07:68:25:da:46:7a:53:c8:9b:b8:
         5c:a2:94:10:0e:45:df:07:55:ec:46:2e:5b:cd:3f:96:91:ac:
         50:a9:2e:d0:52:1c:d2:1f:ae:33:f6:d1:81:78:67:dc:2a:7d:
         e4:58:11:3f:be:12:da:46:8f:d1:36:2a:66:f8:15:37:15:ac:
         4b:5a:e4:67:67:48:11:e4:2c:49:63:68:17:ae:97:44:a0:a0:
         02:02:30:ed:53:33:06:8e:71:25:ea:f0:db:9e:65:ef:9e:2f:
         3c:49:48:90:a4:eb:7e:21:34:9b:8d:a6:2b:94:ad:a9:2d:bf:
         b7:84:bc:1f:61:67:11:ab:e3:82:b5:13:7a:c8:46:15:d6:07:
         f0:ed:40:ec:1a:f0:3e:f6:27:88:59:3d:4e:38:4b:67:23:d0:
         9e:fd:33:d2:13:49:dc:75:d0:7d:9d:a7:e3:80:8d:84:0d:76:
         d2:ba:1e:3c:f0:45:f6:78:1f:30:0b:e7:00:67:d3:ae:cb:d9:
         12:e3:52:02:26:b2:00:f1:ce:f2:8f:6f:d2:5b:f2:c7:ef:da:
         9c:a3:ca:d3

この結果から以下のことがわかる。

署名情報

ラベル名

内容

意味

備考

Subject

CN=wiki.ninth-nine.com

サブジェクト(主体者)のディスティングイッシュ名

Public Key Algorithm

rsaEncryption

公開鍵暗号アルゴリズムはRSA暗号

Signature Algorithm

sha256WithRSAEncryption

署名アルゴリズムは SHA256

RSA暗号パラメータ

ラベル名

内容

意味

備考

Public-Key

2048 bit

2048bit 公開鍵

Modulus

モジュロ(2048bit 分)

モジュロ

秘密鍵のモジュロと一致

Exponent

65537 (0x10001)

冪指数        

65537 を明示

RSA暗号パラメータ(モジュロや冪指数)については以下の文献が詳しい。

属性(Attributes)

本例では X509v3 要求拡張(Requested Extensions)が付加されている(通常必要ない)。

ラベル名

内容

意味

備考

X509v3 Subject Alternative Name

DNS:wiki.ninth-nine.com

いわゆるSANの設定

SANについてはいつかきっと…

コマンド

サブジェクト(主体者)のディスティングイッシュ名を取得する。

openssl req -noout -subject -in CSRファイル名.csr

実行結果

subject=/CN=wiki.ninth-nine.com

コマンド

モジュロを取得する。取得するだけだと何する?なので、秘密鍵と対になっているか確認する。

diff -u <(openssl req  -noout -modulus -in CSRファイル名.csr) <(openssl rsa  -noout -modulus -in 秘密鍵ファイル名.key)

<()というイディオム(実行結果をテンポラリファイル名で渡してくれる)は zsh/bash 拡張なので、シェルスクリプト(sh/ash/ksh)中では使わないこと。

実行結果

空の結果が正常。差分が発生した場合、CSRと秘密鍵は一致していない。diff の代わりにcmpを使うでも良い。

署名済公開鍵(CRT)の確認

  • 署名済み公開鍵のことをcertificateと呼ぶがCSRのように明確に定義(省略形)しているのは無いが、比較的、一般的に通じる「CRT」で通すものとする。もちろん秘密鍵は「KEY」で。
  • 大枠は -text オプションを指定することになるが、個別にデータを取りたい場合のオプションを解説する。

コマンド

openssl x509 -noout -text -in CRTファイル名.crt

実行結果例

Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number:
            03:e1:0f:20:74:80:01:0b:82:f8:ad:53:39:d8:74:30:4f:02
    Signature Algorithm: sha256WithRSAEncryption
        Issuer: C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3
        Validity
            Not Before: Apr 30 09:08:00 2016 GMT
            Not After : Jul 29 09:08:00 2016 GMT
        Subject: CN=wiki.ninth-nine.com
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                Public-Key: (2048 bit)
                Modulus:
                    00:c3:6e:81:a0:ca:e8:d2:6a:b9:f1:ef:23:c2:3e:
                    80:c6:77:fa:e1:57:89:07:bd:10:16:db:b2:40:e9:
                    d5:85:24:e5:3f:84:ac:f7:60:07:7a:f7:62:aa:9f:
                    eb:f5:ee:da:4e:ff:13:06:d7:77:c7:29:dd:7e:89:
                    68:75:38:ca:5a:10:c6:d5:8e:7a:95:5b:59:90:5b:
                    59:9c:17:74:69:ea:fe:d7:a9:91:af:01:c6:cb:d9:
                    95:cc:0b:27:a3:c3:af:f7:eb:e8:e2:3a:99:ba:1a:
                    9e:fc:db:fe:d5:b7:fd:8e:81:da:ad:79:dd:eb:19:
                    b2:bb:8a:1d:04:b6:fa:bb:49:4d:a7:e1:43:42:05:
                    b6:45:1b:83:5f:52:12:d9:97:05:07:ff:92:7a:96:
                    8d:f3:19:7b:9d:0b:cf:01:54:1c:5d:41:87:5d:11:
                    e8:d1:9b:03:7a:b3:16:31:55:9f:b5:37:88:93:40:
                    d6:29:95:df:68:24:e8:6b:5a:f5:50:fc:9b:55:13:
                    8a:dd:2b:88:19:93:14:de:a7:bc:b5:6a:1c:8f:04:
                    67:74:6b:fd:b9:ab:56:ca:e7:04:63:63:2c:cc:0a:
                    cc:f9:cf:b0:58:db:c5:fa:0b:08:ab:6c:5a:5c:9e:
                    c1:c2:29:72:b0:cb:c3:0b:aa:4f:48:aa:0a:cf:3c:
                    8a:b1
                Exponent: 65537 (0x10001)
        X509v3 extensions:
            X509v3 Key Usage: critical
                Digital Signature, Key Encipherment
            X509v3 Extended Key Usage:
                TLS Web Server Authentication, TLS Web Client Authentication
            X509v3 Basic Constraints: critical
                CA:FALSE
            X509v3 Subject Key Identifier:
                8A:69:F2:2E:DC:EB:A9:23:52:A3:36:3A:3A:D7:2E:B1:A2:D6:37:84
            X509v3 Authority Key Identifier:
                keyid:A8:4A:6A:63:04:7D:DD:BA:E6:D1:39:B7:A6:45:65:EF:F3:A8:EC:A1

            Authority Information Access:
                OCSP - URI:http://ocsp.int-x3.letsencrypt.org/
                CA Issuers - URI:http://cert.int-x3.letsencrypt.org/

            X509v3 Subject Alternative Name:
                DNS:wiki.ninth-nine.com
            X509v3 Certificate Policies:
                Policy: 2.23.140.1.2.1
                Policy: 1.3.6.1.4.1.44947.1.1.1
                  CPS: http://cps.letsencrypt.org
                  User Notice:
                    Explicit Text: This Certificate may only be relied upon by Relying Parties and only in accordance with the Certificate Policy found at https://letsencrypt.org/repository/

    Signature Algorithm: sha256WithRSAEncryption
         45:d6:01:67:fd:77:08:09:c4:42:83:7b:dd:53:eb:89:7f:8c:
         d3:8e:e6:f7:e4:17:0b:db:21:a0:aa:e8:64:60:59:b8:cc:0c:
         11:3b:34:14:dc:4a:6c:5a:55:1e:57:ff:3c:86:eb:c8:9e:17:
         04:92:b7:e0:9c:90:4f:b6:8f:a4:41:fc:3e:f5:9b:78:eb:28:
         af:1c:4a:7d:20:ba:76:7e:24:76:cf:d1:16:07:d3:3a:8f:42:
         53:5e:dd:74:31:b8:77:43:d5:19:bf:2a:fd:5e:e0:c1:e3:af:
         61:fe:7c:0b:01:bb:12:10:c5:64:5a:a6:8b:fb:a9:18:cc:f2:
         3c:79:1a:83:be:aa:05:ec:08:2d:05:cc:31:24:ab:81:2c:95:
         7c:9c:02:5b:a3:ea:38:3c:b1:38:be:71:df:ec:6a:76:9a:86:
         19:8c:02:71:ff:16:40:2f:6e:41:cb:81:44:b8:57:f9:85:ae:
         6e:fd:90:32:1f:e8:b5:ed:fb:15:d3:8c:c3:c4:ee:2f:dc:61:
         26:81:73:08:06:2d:de:b0:b5:48:07:3e:75:5d:3b:bc:9e:fb:
         01:a7:cc:4e:c9:32:2a:99:19:26:2c:78:84:f5:58:04:75:77:
         19:f9:a6:e6:2a:e2:7a:73:61:39:df:81:44:91:04:e8:15:61:
         05:f5:19:5c

この結果から以下のことがわかる。

署名情報

ラベル名

内容

意味

備考

Subject

CN=wiki.ninth-nine.com

サブジェクト(主体者)のディスティングイッシュ名

Issuer

C=US, O=Let's Encrypt, CN=Let's Encrypt Authority X3

イシュア(発行者)のディスティングイッシュ名

Not Before

Apr 30 09:08:00 2016 GMT

有効期限(開始日時)

Not After

Jul 29 09:08:00 2016 GMT

有効期限(終了日時)

Public Key Algorithm

rsaEncryption

公開鍵暗号アルゴリズムはRSA暗号

Signature Algorithm

sha256WithRSAEncryption

署名アルゴリズムは SHA256

RSA暗号パラメータ

ラベル名

内容

意味

備考

Public-Key

2048 bit

2048bit 公開鍵

Modulus

モジュロ(2048bit 分)

モジュロ

秘密鍵のモジュロと一致

Exponent

65537 (0x10001)

冪指数        

65537 を明示

RSA暗号パラメータ(モジュロや冪指数)については以下の文献が詳しい。

属性(Attributes)

ラベル名

内容

意味

備考

X509v3 Key Usage

Digital Signature, Key Encipherment

証明書の用途(電子署名と鍵暗号)

X509v3 Extended Key Usage

TLS Web Server Authentication, TLS Web Client Authentication

証明書の拡張用途(SSLサーバー証明、SSLクライアント証明)

X509v3 Basic Constraints

CA:FALSE

署名チェインの可否(しない)

X509v3 Subject Alternative Name

DNS:wiki.ninth-nine.com

SAN

コマンド

サブジェクト(主体者)やイシュア(発行者)のディスティングイッシュ名を取得する。もちろんオプションは別々に指定可能。

openssl req -noout -subject -issuer-in CRTファイル名.crt

実行結果

subject= /CN=wiki.ninth-nine.com
issuer= /C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3

コマンド

有効期限(開始日時あるいは終了日時)を取得する。もちろんオプションは別々に指定可能。

openssl x509 -noout -startdate -enddate -in openssl x509 -noout -startdate -enddate -in CRTファイル名.crt

実行結果

notBefore=Apr 30 09:08:00 2016 GMT
notAfter=Jul 29 09:08:00 2016 GMT

コマンド

モジュロを取得する。取得するだけだと何する?なので、秘密鍵と対になっているか確認する。

diff -u <(openssl x509 -noout -modulus -in CRTファイル名.crt) <(openssl rsa  -noout -modulus -in 秘密鍵ファイル名.key)

<()というイディオム(実行結果をテンポラリファイル名で渡してくれる)は zsh/bash 拡張なので、シェルスクリプト(sh/ash/ksh)中では使わないこと。

実行結果

空の結果が正常。差分が発生した場合、CRTと秘密鍵は一致していない。diff の代わりにcmpを使うでも良い。

参考文献

OpenSSL (最終更新日時 2016-05-04 17:20:27 更新者 NorikatsuShigemura)