- PR -

openssl.cnfの[ policy_match ]サブセクションについて

1
投稿者投稿内容
優しくなりたい
会議室デビュー日: 2007/02/05
投稿数: 8
投稿日時: 2007-02-05 14:41
こんにちは。
openssl.cnfの[ policy_match ]サブセクションについて質問させていただきます。

openssl.cnfの[ policy_match ]サブセクションでは、"match","supplied","optional" の
いずれかの値をとると思いますが、このサブセクションのデフォルトの値で、match
(CAと同一でなければならない)ものに以下がありました。

countryName(国名)
stateOrProvinceName(都道府県名)
organizationName(組織名)

これらがmatchしないとどうなるのか、が分からなかったため質問させていただきました。

試しにこの設定のままCAのcountryNameをJPとした場合、CSRのcountryNameがJP以外(今回は
USを指定)だったとすると、証明書発行がエラーになるのかと考えていたのですが、
証明書発行は滞りなく終了しました。以下が発行された証明書のIssuerとSubjectです。

Issuer: C=JP, ST=TEST, L=TEST, O=TEST, OU=TEST, CN=test.xxx.com/emailAddress=test@xxx.com
Subject: C=US, ST=USO, L=USO, O=USO, OU=USO, CN=uso user/emailAddress=uso@yyy.com

※僕の考えですと、証明書発行(CA.sh -sign)時にUSを入れたことに対してエラーになって
 くれるのではないかと考えていたのですが・・・。

尚、プライベートCA局とHTTPサーバで使用しているOSはRedHat Enterprise Linux 4で
OpenSSLバージョンは0.9.7aです。

どうか宜しくお願い致します。

はしもと
大ベテラン
会議室デビュー日: 2003/02/05
投稿数: 182
投稿日時: 2007-02-06 02:05
引用:
優しくなりたいさんの書き込み (2007-02-05 14:41) より:

試しにこの設定のままCAのcountryNameをJPとした場合、CSRのcountryNameがJP以外(今回は
USを指定)だったとすると、証明書発行がエラーになるのかと考えていたのですが、



ここまでは正しいと思います。

引用:
※僕の考えですと、証明書発行(CA.sh -sign)時にUSを入れたことに対してエラーになって
 くれるのではないかと考えていたのですが・・・。



しかし CA.sh -sign で実行される時には -policy policy_anything オプションが
付いていると思います。この場合は openssl.cnf の policy_anything
セクションが参照されます。


[ メッセージ編集済み 編集者: はしもと 編集日時 2007-02-06 02:07 ]
優しくなりたい
会議室デビュー日: 2007/02/05
投稿数: 8
投稿日時: 2007-02-06 12:16
はしもと様
ご返信いただき、感謝いたします。

仰る通りでございました。
以下のコマンド実行時、意図したエラーが発生し
期待通り証明書作成が失敗しました。嬉しいかぎりです。

# openssl ca -policy policy_match -out uscert.pem -infiles usreq.pem
-------------------
The countryName field needed to be the same in the
CA certificate (JP) and the request (US)
-------------------

今回、僕の誤解で、CA -sign実行時はコンフィグの内容
([ CA_default ]サブセクションの"policy = policy_match")が
優先されるものと勝手に思い込んでおりました・・・面目ありません。
今後は試した上で確認させていただこうと思います。

本当にありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)