Opera Miniで買いログのログインページを表示したときに、「セキュア処理を完了することができません」と出ていた。
このエラーメッセージをGoogleで調べてみたが、解決策が載っていたのは「時間の設定が間違っていた」、「Operaのセキュリティプロトコルを全部チェック付ける」、「opera.iniの設定をテキストエディタで修正する」の3パターン。時間はNTPで合わせているので問題なし。Operaのセキュリティ関連の設定は、Opera Miniではできない。
Opera側の問題なのかサーバ側の問題なのかを調べるために、同じグローバルサインの証明書を使っているポイ探、他のサイトをOpera Miniで表示してみた。それらのサイトはSSLのページを普通に表示ができる。この時点でサーバ側を修正すれば対応可能ということがわかった。
で、いろいろな設定を見なおしたが、どうしてもわからない。SSLのバージョンの問題かと思って、SSLCipherSuiteの設定を調べてみたがうまくいかない。違いは買いログのサーバと他のサーバのApacheのバージョンが違うことくらい。
1日悩んで原因がわかった。SSLの設定でServerNameを設定していなかった点。Apacheのドキュメントを見ると次のようなことが書かれている。
ServerName が指定されていないときは、 サーバは IP アドレスから逆引きを行なうことでホスト名を知ろうとします。 ServerName にポートが指定されていないときは、 サーバはリクエストが来ている ポートを使います。最高の信頼性と確実性をもたらすためには、 ServerName を使ってホスト名とポートを明示的に 指定してください。
ただ、「ServerName が指定されていないときは、」については「サーバは逆引きを」とあるので、なぜブラウザで動きが変わってくるのだろうか。
もし、同じメッセージが出た人はServerNameを見直そう。