証明書チェーンの例

Aliaksandr Prysmakou
Aliaksandr Prysmakou

Follow

12月8日, 2017 – 3 min read

「証明書チェーンの取得方法」「正しい証明書チェーンの順番とは」などの質問を多く見かけます。 それについて少し説明します。

TL;DR 証明書チェーンは、自分の証明書から始まり、中間証明書またはルート CA 証明書へと続いていきます。

まず最初に、SSL証明書が信頼されるためには、使用するデバイスの信頼できるストア(オペレーションシステムストアまたはFirefoxのようなアプリケーションストア)にあるCAによって発行される必要があります。

証明書の 1 つを見てみましょう。

a certificate

私のドメイン(矢印参照)に対して、システムはストア内で私の証明書の発行者を探そうとし、見つからない場合(私の例では見つかりません)、私の証明書の発行者の発行者を探そうとするなど、さまざまな方法で探します。

証明書間の関係は、リソースの証明書がルート CA(システムにインストールされている CA)または中間 CA(ルート CA または「上位」中間 CA のいずれかによって発行される)のいずれかによって発行されなければならない証明書のチェーンを作成します。

特定の「証明書チェーン」ファイルがない証明書ファイル (たとえば、多数の .crt) を受け取ることがよくあります。

チェーンを (再) 作成するには、証明書ファイルから始める必要があります。

チェーンファイルの最初のフィールドは、あなたのドメインの証明書でなければなりません(例外があります。 中間CAの証明書は、IssuerとSubjectのフィールドが異なります。

2番目の証明書は、あなたの証明書の発行者の発行者の証明書でなければならず、ルート証明書まで同じです。

私の場合、チェーンは次のようになります:

最初に私の証明書 (STAR_mydomain.crt)

Issuer: C=US, ST=DE, L=Wilmington, O=Corporation Service Company, CN=Trusted Secure Certificate Authority 5
Subject: my subject

チェーンの2番目 (TrustedSecureCertificateAuthority5.crt) です。 注:Subjectは前のファイルのIssuerと同じ:

Issuer: C=US, ST=New Jersey, L=Jersey City, O=The USERTRUST Network, CN=USERTrust RSA Certification Authority
Subject: C=US, ST=DE, L=Wilmington, O=Corporation Service Company, CN=Trusted Secure Certificate Authority 5

3つ目はUSERTrustRSAAddTrustCA.crt:

Issuer: C=SE, O=AddTrust AB, OU=AddTrust External TTP Network, CN=AddTrust External CA Root
Subject: C=US, ST=New Jersey, L=Jersey City, O=The USERTRUST Network, CN=USERTrust RSA Certification Authority

最後の1つはAddTrustExternalCARoot.crtである。 注:Issuer = Subjectは、ルートCAであることを意味します。 ルートCA証明書をチェーンに追加する必要はありません。

Issuer: C=SE, O=AddTrust AB, OU=AddTrust External TTP Network, CN=AddTrust External CA Root
Subject: C=SE, O=AddTrust AB, OU=AddTrust External TTP Network, CN=AddTrust External CA Root

証明書チェーンのファイルを作成するには、次のコマンドを実行します:

$cat STAR_mydomain.crt TrustedSecureCertificateAuthority5.crt USERTrustRSAAddTrustCA.crt > Certificate_Chain.crt

AWS Certificate managerなどのサービスの場合:

cat TrustedSecureCertificateAuthority5.crt USERTrustRSAAddTrustCA.crt > Certificate_Chain.crt

ファイルは次のようになります:

-----BEGIN CERTIFICATE-----
content of your domain certificate
-----END CERTIFICATE-----
...
-----BEGIN CERTIFICATE-----
content of any intermediate CA certificate
-----END CERTIFICATE-----

あなたの証明書チェーンに問題がないか確認するには、例えばDigiCertなどのオンラインサービスを使って確認できます。

UPDATE: AddTrust External CA Rootの2020年5月30日の有効期限に関する複数の問題の後、情報が更新されました。 ルート証明書を追加する必要はありません。 自己署名証明書を使用しない限り、推奨されません。