Shammer's Philosophy

My private adversaria

X509証明書項目-証明書ポリシー(CertificatePolicies)

説明(書籍から一部引用)

CertificatePolicies拡張領域には、認証局が証明書の発行の際に使用した証明書ポリシーを識別するOIDのリストが含まれます。証明書を使用する各アプリケーションにより、リストされた1つまたは2つ以上のポリシーの使用が可能です。
拡張領域がnon-criticalとマークされている場合には、いかなるポリシーの下で証明書が発行されたかが示されますが、証明書ユーザーは証明書の用途をポリシーの目的のみに制約されません。証明書が他の目的に使用されても、依然証明書ユーザーはパス内の証明書内に特定のポリシー識別子を存在させるように要求できます。
拡張領域がcriticalとマークされている場合には、証明書を特定の目的またはリストされたポリシーの1つによる制約の下でのみ使用できることが認証局により宣言されています。これは特に公共CAにおいて責任範囲の限定を効果的に実現します。CAにより、宣言された目的での証明書の使用のみが保証され、他の文脈での使用には責任を負わないことが明示されます。
あらゆる組織はPolicy-Identifierフィールドで使用される独自ポリシーのOIDを規定できます。ポリシーOIDは識別子の世界中での一意性を保証し、ポリシー識別子の公開を可能とするため登録できます。認証局によって証明書があらゆるポリシーの下で使用可能であることの明示的な保証が望まれる場合には、特別なanyPolicyポリシー識別子の指定が可能です。

OpenSSLの設定例

設定ファイルをgrepすると以下のようになっている。

# grep -i CertificatePolicies openssl.cnf 
#

デフォルトでは使用されていない。

個人的見解

この設定がcriticalの場合は、証明書作成の際のKeyUsageをしっかり意識しないといけなそうだ。検証目的であれば、一つの証明書でなんでもできるような証明書を発行してしまいたいとも思う。