SSL証明書を確認していて、現在、目だった不具合はないのですが、ちょっと不審に思いましたので投稿させていただきます。
Ver. 3.5.3 (Windows版) で確認していますが、Firefoxは Builtin Object Token として、セコムトラストのルート証明書である、
OU = Security Communication RootCA1
O = SECOM Trust.net
C = JP
を信頼しています。一方、世の中には、Subject がこれと同一で、Issuer が、
E =
info@valicert.com
CN =
http://www.valicert.com/
OU = ValiCert Class 1 Policy Validation Authority
O = "ValiCert, Inc."
L = ValiCert Validation Network
の中間証明書を一緒に送り出すサイトもあるようです。この Issuer(発行者)
http://www.valicert.com/ についても、Firefox は Builtin Object Token としてルート証明書を持っており、認証されます。
A) Security Communication RootCA1 をルート証明書として期待するサイト
https://www.sugiyama-u.ac.jp/
openssl s_client -CApath /etc/ssl/certs -connect
www.sugiyama-u.ac.jp:https で確認した送信される証明書:
Certificate chain
0 s:/C=JP/L=Academe2/O=Sugiyama Jogakuen University/OU=Information Technology Center/CN=www.sugiyama-u.ac.jp
i:/C=JP/L=Academe2/O=National Institute of Informatics/OU=UPKI/OU=NII Open Domain CA - G2
1 s:/C=JP/L=Academe2/O=National Institute of Informatics/OU=UPKI/OU=NII Open Domain CA - G2
i:/C=JP/O=SECOM Trust.net/OU=Security Communication RootCA1
B)
http://www.valicert.com/ 発行の中間証明書を送るサイト
https://navi.sugiyama-u.ac.jp/ (近日中に修正される可能性あり)
openssl s_client -connect gear.sugiyama-u.ac.jp:https で確認した送信される証明書:
Certificate chain
0 s:/C=JP/L=Academe2/O=Sugiyama Jogakuen University/OU=smap/CN=navi.sugiyama-u.ac.jp
i:/C=JP/L=Academe2/O=National Institute of Informatics/OU=UPKI/OU=NII Open Domain CA - G2
1 s:/C=JP/L=Academe2/O=National Institute of Informatics/OU=UPKI/OU=NII Open Domain CA - G2
i:/C=JP/O=SECOM Trust.net/OU=Security Communication RootCA1
2 s:/C=JP/O=SECOM Trust.net/OU=Security Communication RootCA1
i:/L=ValiCert Validation Network/O=ValiCert, Inc./OU=ValiCert Class 1 Policy Validation Authority/CN=http://www.valicert.com//emailAddress=info@valicert.com
先ほど、サイト Aの、当初 Builtin Object Token の Security Communication RootCA1 で確認されていた証明書が、いったん
http://www.valicert.com/ 発行の中間証明書を使うサイト B にアクセスすると、以後はサイト A にアクセスしても Security Communication RootCA1 ルート証明書を使用しなくなってしまう、という現象を確認しました。
Internet Explorer では XP と Vista で挙動が異なるようですが、使用されるルート証明書が変化するということはありません。Security Communication RootCA1 をルート証明書とするサイトにアクセスした場合には、常にこれをルート証明書として扱い、他のサイトへのアクセスの有無は関係しないようです。なお CN=http://www.valicert.com/ 発行の中間証明書を使うサイトにアクセスしたときの挙動は、Vista 上の IE7, IE8 ではこの中間証明書を使用して
http://www.valicert.com/ をルート証明書として使用します。一方 XP sp2/sp3 上の IE6/IE7/IE8 では、常に Security Communication RootCA1 をルート証明書として使い、http://www.valicert.com/ 発行の中間証明書を使用するサイトでもこの中間証明書は無視されるようです。
以下、Windows XP sp3 に新規に Firefox 3.5.3 をインストールして確認
新規インストール後 A にアクセスしたときの「証明書の階層」表示
Builtin Object Token: Security Communication RootCA1
+--UPKI
+--www.sugiyama-u.ac.jp
B にアクセスし、その後 A にアクセスしたときの「証明書の階層」表示
http://www.valicert.com/
+--Security Communication RootCA1
+--UPKI
+--www.sugiyama-u.ac.jp
B にアクセスすると、証明書マネージャの「認証局証明書」に Security Communication RootCA1 という名前の「Software Security Device」が追加されます。この中間証明書の内容は以下の通りです。
Issuer:
E =
info@valicert.com
CN =
http://www.valicert.com/
OU = ValiCert Class 1 Policy Validation Authority
O = "ValiCert, Inc."
L = ValiCert Validation Network
Subject:
OU = Security Communication RootCA1
O = SECOM Trust.net
C = JP
このようにルート証明書で確認できるものが、他のサイトの中間証明書を取り込んで使いまわされることによって、内蔵のルート証明書より他のサイトからの中間証明書を優先してしまうというのは意図された仕様なのでしょうか。今回の例では中間証明書の有効期限は 2015年までで、Builtin Object Token の Security Communication RootCA1 ルート証明書は 2023年までなので、2015年を過ぎると本来はすべての階層で有効期限内であるにも関わらず、有効期限切れと判断されたりする可能性もあるように思いました。
以上、よろしくお願いいたします。