<ph type="x-smartling-placeholder"></ph>
現在、Apigee Edge のドキュメントが表示されています。
Apigee X のドキュメント。 詳細
このドキュメントでは、証明書を Apigee Edge のキーストアまたはトラストストアに対して行われます。このプロセスは、 証明書を検証する OpenSSL ツールキット OpenSSL が利用可能なすべての環境に適用されます。
始める前に
このドキュメントの手順を使用する前に、次のトピックを理解しておいてください。
- 証明書チェーンについてよく理解していない場合は、 チェーン オブ トラスト。
- OpenSSL ライブラリに詳しくない場合は、 OpenSSL。
- このガイドのコマンドラインの例を使用する場合は、 最新バージョンの OpenSSL クライアントが必要です。
- 証明書が PEM 形式であることを確認します。証明書が PEM 形式でない場合、 手順については <ph type="x-smartling-placeholder"></ph> PEM 形式に変換するための証明書のサポートされている形式への変換
チェーン全体に対する証明書のサブジェクトと発行元の検証
OpenSSL コマンドを使用して証明書チェーンを検証するには、次の手順を完了します。 次のセクション:
証明書チェーンの分割
証明書を検証する前に、証明書チェーンを証明書チェーンごとに分割する必要があります。 作成してみましょう。
- OpenSSL クライアントが存在するサーバーにログインします。
- 証明書チェーンを次の証明書に分割します(まだ分割していない場合)。
-
エンティティ証明書:
entity.pem
-
中間証明書:
intermediate.pem
-
ルート証明書:
root.pem
次の図は、証明書チェーンの例を示しています。
証明書のサブジェクトと発行元の確認
このセクションでは、証明書のサブジェクトと発行元を取得し、 有効な証明書チェーンがあることを確認します。
-
次の OpenSSL コマンドを実行して、
Subject
を取得します。entity
からのチェーン内の各証明書に対するIssuer
root
に追加して、適切な証明書チェーンを形成していることを確認します。openssl x509 -text -in certificate | grep -E '(Subject|Issuer):'
ここで、certificate は証明書の名前です。
-
チェーン内の証明書が次のガイドラインに準拠していることを確認します。
<ph type="x-smartling-placeholder">
- </ph>
-
各証明書の
Subject
は、証明書のIssuer
と一致します。 チェーン内の先行する証明書(Entity
証明書を除く)。 -
ルート証明書の
Subject
とIssuer
は同じです。
チェーン内の証明書がこれらのガイドラインに準拠している場合、証明書チェーンは完全かつ有効とみなされます。
証明書チェーンの検証の例
次の例は、3 つの証明書を含むサンプル証明書チェーンの OpenSSL コマンドの出力です。
エンティティ証明書
openssl x509 -text -in entity.pem | grep -E '(Subject|Issuer):' Issuer: C = US, O = Google Trust Services, CN = GTS CA 1O1 Subject: C = US, ST = California, L = Mountain View, O = Google LLC, CN = *.enterprise.apigee.com
中間証明書
openssl x509 -text -in intermediate.pem | grep -E '(Subject|Issuer):' Issuer: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign Subject: C = US, O = Google Trust Services, CN = GTS CA 1O1
ルート証明書
openssl x509 -text -in root.pem | grep -E '(Subject|Issuer):' Issuer: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign Subject: OU = GlobalSign Root CA - R2, O = GlobalSign, CN = GlobalSign
上記の例では、次の点に注意してください。
-
中間証明書の
Subject
がIssuer
と一致する 含まれます。 -
ルート証明書の
Subject
が次のIssuer
と一致している 中間証明書です。 -
Subject
とIssuer
はルート証明書内で同じです。
上記の例から、サンプルの証明書チェーンが有効であることを確認できます。
-
各証明書の
証明書のサブジェクトと発行者ハッシュの確認
このセクションでは、証明書のサブジェクトと発行元のハッシュを取得し、 有効な証明書チェーンがあることを確認します。
証明書のハッシュ シーケンスは、 不要なスペースがある証明書の共通名(CN)や 使用しないでください。
- 次の OpenSSL コマンドを実行して、それぞれの
hash
シーケンスを取得します。entity
からroot
へのチェーンで証明書を作成し、それらが 適切な証明書チェーンを作成します。 - チェーン内の証明書が次のガイドラインに準拠していることを確認します。
-
各証明書の
Subject
が、前の証明書のIssuer
と一致している チェーン内の証明書(Entity
証明書を除く)。 -
ルート証明書の
Subject
とIssuer
は同じです。 -
中間証明書の
subject hash
がエンティティのissuer hash
と一致する あります。 -
ルート証明書の
subject hash
が発行元証明書のissuer hash
と一致する。 -
subject
とissuer hash
はルート証明書内で同じです。
openssl x509 -hash -issuer_hash -noout -in certificate
ここで、certificate は証明書の名前です。
チェーン内の証明書がこれらのガイドラインに準拠している場合、証明書チェーンは 完全かつ有効と見なされます
ハッシュ シーケンスによる証明書チェーンの検証の例
次の例は、サンプル証明書チェーンの OpenSSL コマンドの出力です。 3 つの証明書が含まれています。
openssl x509 -in entity.pem -hash -issuer_hash -noout c54c66ba #this is subject hash 99bdd351 #this is issuer hash
openssl x509 -in intermediate.pem -hash -issuer_hash -noout 99bdd351 4a6481c9
openssl x509 -in root.pem -hash -issuer_hash -noout 4a6481c9 4a6481c9
上記の例では、次の点に注意してください。
上記の例から、サンプルの証明書チェーンが有効であることを確認できます。
証明書の有効期限の確認
このセクションでは、チェーン内のすべての証明書が証明書に 次の方法で期限切れになります。
- 証明書の開始日と終了日を取得します。
- 有効期限のステータスを取得します。
開始日と終了日
次の OpenSSL コマンドを実行して、各証明書の開始日と終了日を取得します。
entity
から root
へのチェーンで検証し、すべての証明書が
チェーンの 1 つが有効(開始日が今日より前)で、有効期限が切れていないこと。
開始日と終了日による証明書の有効期限の検証の例
openssl x509 -startdate -enddate -noout -in entity.pem notBefore=Feb 6 21:57:21 2020 GMT notAfter=Feb 4 21:57:21 2021 GMT
openssl x509 -startdate -enddate -noout -in intermediate.pem notBefore=Jun 15 00:00:42 2017 GMT notAfter=Dec 15 00:00:42 2021 GMT
openssl x509 -startdate -enddate -noout -in root.pem notBefore=Apr 13 10:00:00 2011 GMT notAfter=Apr 13 10:00:00 2022 GMT
有効期限のステータス
次の OpenSSL コマンドを実行して、証明書の有効期限が切れていないか、
は今後 N seconds
で期限切れになります。このメソッドは、指定されたリソースの有効期限
現在のシステム日付のコンテキストで計算されます。
openssl x509 -checkend <N Seconds> -noout -in certificate
ここで、certificate は証明書の名前です。
checkend オプションを使用した証明書の有効期限の検証の例
次のコマンドは、0 seconds
を使用して証明書が読み取られているかどうかを確認します。
期限切れかどうか:
openssl x509 -checkend 0 -noout -in entity.pem Certificate will not expire
openssl x509 -checkend 0 -noout -in intermediate.pem Certificate will not expire
openssl x509 -checkend 0 -noout -in root.pem Certificate will not expire
この例では、メッセージ Certificate will not expire
は、
証明書の有効期限が切れていないこと。