5.3 TLS証明書失効リストの処理

証明書の失効リストを構成する方法を学習します。

証明書失効リスト(CRL)は、失効リストの発行者を識別する情報と、失効した証明書を識別するゼロ個以上のエントリが続く情報を含むPrivacy Enhance Mail (PEM)形式のファイルです。保護されたサーバーは、ピアとの安全なチャネルを確立することの一部であり、ピアとのハンドシェイクを開始します。このハンドシェイク中に、セキュリティ情報と機能が交渉され、交換されます。これには参加者の一方または両方の証明書が含まれます。セキュリティ構成に応じて、参加者の一方または両方がピアの証明書を提示したり必要とする場合や、どちらもその必要がない場合もあります。

ピアのX.509証明書を受信してその有効性を​​検証した後、受信側参加者は現在設定されているCRLを調べます。検証直後のピア証明書を識別するエントリが存在すると、受信側参加者は、リモート参加者の証明書を失効済と見なします。失効した証明書は、リモート参加者のアイデンティティの認証には無効とみなされます。失効した証明書は、セキュア・チャネル・ハンドシェイクの完全性チェック部分に失敗し、チャネルを終了します。リモート・ピアが証明書の検証中にエラーが発生したことを検出する実装によっては、特定の原因について通知されないことがあります。

実際のCRLはプロローグで構成され、0個以上のエントリが続くCRLの発行者を識別します。各エントリは、失効日、署名アルゴリズム、指紋情報に関するセキュリティ情報とともに、シリアル番号で特定の証明書を識別します。

通常、コンパクトな形式のCRLでは、-----BEGIN X509 CRL----------END X509 CRL-----デリミタの間のコンテンツのみを組み込みます。これらのデリミタの外側にある他のデータはすべて無視されます。CRLの機能に影響を与えずに、CRLのテキスト表現をCRLファイルに埋め込むことができます。

CRLの使用は、各MAサーバーごとに個別に構成されています。CRL構成は、次の2つのプロパティで構成されています。

/config/security/common/crlEnabled

CRL処理を有効または無効にします。

ただし、/config/security/common/crlEnabledが有効(true)な場合、/config/security/common/crlStoreプロパティは有効な整形式のCRLを参照している必要があります。

/config/security/common/crlStore

CRL処理が無効(false)の場合、リモート参加者の証明書はCRLと照合されません。この場合、/config/security/common/crlStoreプロパティを設定する必要はありません。

有効かつ整形式のCRLファイルは、RFC 2380 - インターネットX.509公開キー・インフラストラクチャ証明書および証明書失効リスト(CRL)プロファイルまたは空のファイルに準拠するPEMエンコードCRLファイルです。

次に、セキュリティ保護されたサーバーにCRL処理を宣言および定義するサンプルの抜粋を示します。

{
    "config" : {
        "security: {
            "common" : {
                "crlEnabled" : true,
                "crlStore"   : "file:/scratch/Tests/unittests/etc/ssl/RootCA/CAs/Deploy1/CRLs/empty_CRL.pem"
            }
        }
    }
}

CRLファイルは、サーバーの稼働中に他の、おそらくより最新のバージョンによって更新または置き換えられます。CRLファイルを置き換えると、次回の要求CRL参照で新しく更新されたファイルが使用されます。

/config/security/common/crlEnabledプロパティの設定方法に関係なく、サーバーの一般的なセキュリティ構成が無効になっている場合、CRL処理が無効になります。たとえば、/config/securityプロパティの値は、false)です。

間接的にCRL処理に影響するもう1つの構成設定は、/config/securityDetails/network/common/authModeプロパティです。このプロパティは、サーバーが証明書を使用してクライアントを認証する必要があるかどうか、またはサーバーがオプションで提示された証明書を受け入れるかどうか、またはサーバーが提示されたクライアント証明書を無視するかどうかを制御します。証明書が必須ではなく、提示されない、またはサーバーによって無視される場合、CRL処理は使用されません。