日曜日, 3月 11, 2007

調べるのに苦労した話

久しぶりに調べものでハマった。検索エンジンが発達し、これだけ情報が豊かに
なったとは言え、ニッチな情報はやはりいくら検索をしても出てこないことがある。

ということで、似たようなケースで誰かが困った時の救世主となるべく書いておく
ことにする。

----------------------------------------------------------------------------------

BIG-IP(Ver4.5)でVerisign(ベリサイン)のSSLキーを更新した後、今までと
同じように設定したはずなのに、https接続時に、「このページは安全性に問題が
あります」というメッセージが出てしまうようになった。

原因は2007年3月6日にVerisignがセキュア・サーバIDに下記のような変更を
行ったことによる。

1)ルート認証局の変更
2)証明書の階層の変更(2階層→3階層)
3)証明書プロファイルの変更
4)証明書形式の変更

上記2)によって中間CA証明書というものが必要になったらしい。が、日本ベリサイン
のサイトの「新仕様(三階層)のテスト用セキュア・サーバIDについて」 にはあまり
インストール方法に関する情報はない。結局、このページでわかったのは中間
CA局証明書のありかだけ。

中間CA局証明書は下記のような文字列になっている。

-----BEGIN CERTIFICATE-----MIIDgzCCAuygAwIBAgIQJUuKhThCzONY+MXdriJupDANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xNzA1BgNVBAsTLkNsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNOTcwNDE3MDAwMDAwWhcNMTExMDI0MjM1OTU5WjCBujEfMB0GA1UEChMWVmVyaVNpZ24gVHJ1c3QgTmV0d29yazEXMBUGA1UECxMOVmVyaVNpZ24sIEluYy4xMzAxBgNVBAsTKlZlcmlTaWduIEludGVybmF0aW9uYWwgU2VydmVyIENBIC0gQ2xhc3MgMzFJMEcGA1UECxNAd3d3LnZlcmlzaWduLmNvbS9DUFMgSW5jb3JwLmJ5IFJlZi4gTElBQklMSVRZIExURC4oYyk5NyBWZXJpU2lnbjCBnzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA2IKA6NYZAn0fhRg5JaJlK+G/1AXTvOY2O6rwTGxbtueqPHNFVbLxveqXQu2aNAoV1Klc9UAl3dkHwTKydWzEyruj/lYncUOqY/UwPpMo5frxCTvzt01OOfdcSVq4wR3Tsor+cDCVQsv+K1GLWjw6+SJPkLICp1OcTzTnqwSye28CAwEAAaOB4zCB4DAPBgNVHRMECDAGAQH/AgEAMEQGA1UdIAQ9MDswOQYLYIZIAYb4RQEHAQEwKjAoBggrBgEFBQcCARYcaHR0cHM6Ly93d3cudmVyaXNpZ24uY29tL0NQUzA0BgNVHSUELTArBggrBgEFBQcDAQYIKwYBBQUHAwIGCWCGSAGG+EIEAQYKYIZIAYb4RQEIATALBgNVHQ8EBAMCAQYwEQYJYIZIAYb4QgEBBAQDAgEGMDEGA1UdHwQqMCgwJqAkoCKGIGh0dHA6Ly9jcmwudmVyaXNpZ24uY29tL3BjYTMuY3JsMA0GCSqGSIb3DQEBBQUAA4GBAAgB7ORolANC8XPxI6I63unx2sZUxCM+hurPajozq+qcBBQHNgYL+Yhv1RPuKSvD5HKNRO3RrCAJLeH24RkFOLA9D59/+J4C3IYChmFOJl9en5IeDCSk9dBwE88mw0M9SR2egi5SX7w+xmYpAY5Okiy8RnUDgqxz6dl+C2fvVFIa-----END CERTIFICATE-----

ぱっと見、SSL証明書ファイルと同じ書式なのだが、通常だとProxyの生成時には
CSRの生成時にできるSSLキーとSSL証明書をセットで指定する。では、
中間CA局証明書のSSLキーにあたるものは何になるのか?謎は深まるばかり。

この他、米国ベリサインのサイトにもいくつかのアプリケーションでの参考手順が
掲載されています。

とあったので、リンクをたどってUSのサイトへ行き着いた。そこで設定方法を
読む限り、/config/bigconfig/ssl.crt/ に証明書ファイルを intermediate-ca.crt
という名前で置けばよいようだった。intermediate-ca.crt というファイルは存在
していなかったので、vi で作成して証明書を丸ごと貼り付けた。

が、ブラウザで試すと何も変わっていなかった。管理画面で新しいProxies を add
画面から作る途中のリストの中にも intermediate-ca.crt はいないので、
ファイルとしては存在しているものの、BIG-IPからは全く認識されていない感じ。

BIG-IPごと再起動が必要なのだろうか?サーバー類の最上流にいる機器だけに
リブートによるサービス寸断はなるべく避けたい。

ということで、次は管理画面から証明書のインポートを行ってみることにした。
Proxies > Cert Admin > import > Certificate で現れる欄に証明書の文字列を
貼り付け、Certificate Identifierの欄にこの証明書のファイル名を入れて
Install Certificateボタンを押す。

何も問題なく成功。これで「SSLキーとのペアをどうやって作るか?」という部分は
気にする必要がなくなった。

が、やはり Proxiesの Add で Server Certificateのリストには出てこない。
他の.crt ファイルは表示されているというのに・・・。結局、「中間CA局証明書と
Proxy を紐付ける方法が分からない」という問題ではまってしまった。

Googleで"Intermediate CA"、"BIG-IP", "bigip","intermediate-ca.crt "
"Verisign", 等のキーワードで検索したが、全く空振り。製造元のF5の
サポートサイトも情報ナシ。

そうこうしているうちに、BIG-IPのログイン直後の画面の隅のリンクの先に
説明書のPDFがあるのを発見。開いてみると英語で600ページもある大作・・・。

IntermediateでPDFの中を検索したところ、SSL関係の解説が見つかった。
似たような機能がいろいろあるので紛らわしいが、中間CA証明書は
Client Chain File というものにあたるようだ。

で、これはどこで設定するのかというと、今までは全く使うことのなかった、
Proxies の add 画面の先の方。

Proxies > プロキシーを選択 > Proxy Advanced Properties タブ

と進むと Client Chain File の設定欄が登場。ドロップダウンリストの
中にはちゃんと Verisignの中間認証CA もいた。どうやら同じ .crt
ファイルを候補とするメニューでも、性質に応じて出す候補を変えている
ようだ。

ここで Verisignの中間認証CA を指定して確定したところ、問題の症状が
消えた。ふう。