Shammer's Philosophy

My private adversaria

X509証明書項目-ポリシー制約(PolicyConstraints)

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

この拡張領域は証明書ポリシーフィールドの使用に依存する処理を実行する際に適用が望まれる制約の集まりです。
requireExplicitPolicyインジケータは、処理中の証明書の後に続くすべての証明書が、受け入れ可能なポリシー識別子を明示的に含む必要があることを指定するために使用されます。
inhibitPolicyMappingインジケータは、処理中の証明書の後に続くすべての証明書に対してポリシーマッピングが許可されないことを指定するために使用されます。
PolicyConstraints拡張領域で、発行者はrequireExplicitPolicyフィールドを使って、証明書経路で後に続く証明書が受容できるポリシー識別子を含まなければならないということを示すことができます。
この拡張領域にあるinhibitPolicyMappingフィールドで、発行者は証明書チェーンであとに続く証明書のさまざまなポリシーがマッピングされないようにすることができます。これが実装されるのは、普通、証明書チェーンが複数のポリシードメインにまたがっているけれども、そのポリシーのかなりの部分が一致しているので、ポリシーマッピング操作を行っても意味のある結果を得られそうもないという場合です。
この拡張領域にはcriticalの印をつけることもできますし、またnon-criticalの印をつけることもできますが、criticalの印をつけることを推奨します。
CAはポリシー制約がヌルシーケンスになっている証明書を発行してはいけません。CAが発行する証明書にはinhibitPolicyMappingまたはrequireExplicitPolicyのうちひとつが指定されていなければなりません。

OpenSSLの設定例

デフォルトの設定ファイルには記述はないようだ。

# grep -i policyConstraints openssl.cnf 
#

個人的見解

ポリシーはよくわからない。ポリシーフォーマットはわかるが。。。SSL/TLS関連の検証で証明書を使用するという限りにおいては、ポリシーはそんなに意識しなくてもよい気がするのだが。PKIのための製品となるとそうはいかないだろうけれども。