SSL の www ありなしリダイレクトで RSA server certificate CommonName (CN) does NOT match の警告を消すには



非SSL・VirtualHost 環境下でのリダイレクト

ドメインの www あり (www.example.jp) を www なし (example.jp) にリダイレクトさせて URL を統一させることはよくありますよね。

いろいろな方法がありますが、Apache の設定で VirtualHost とリダイレクトを使うと、次のような設定になります。

SSL 環境下でのリダイレクト(Apache 2.2)

これが SSL(TLS) の VirtualHost (SNI) を使う場合を考えます。1枚の SSL 証明書で www のあるなしに SANs という機能で対応しているものであれば、以下のように設定すれば良さそうです。

Apache 2.4 系だとこれでエラーにはなりませんでしたが、Apache 2.2 だとエラーとなってしまいます。リダイレクトするだけの www 側にも証明書を指定しなければなりません。まあ、ある意味それが普通ですよね。

ログに RSA server certificate CommonName (CN) ~ does NOT match の警告

上記の設定であればブラウザでのアクセスでエラーは出ずにリダイレクトもされるのですが、Apache のエラーログには次のようなワーニングが出ていました。

これは Apache の設定で、SSL 証明書のコモンネームと ServerName が異なっているときに出るメッセージです。証明書の SANs フィールドに複数のドメイン名が記載できますが、Apache が証明書のコモンネームとして判断する場合には適用されないようです。

では、SANs を使った証明書で www のありなしを統一するためにリダイレクトするのであればどうすれば良いでしょうか。それは VirtualHost をそれぞれ作るのではなく、1つの VirtualHost で ServerAlias ディレクティブと mod_rewrite を使えばうまくいきます。

これでワーニングを出さないようにすることができます。

これはワイルドカード証明書の場合は問題ありません。また Apache 2.4 系ではこの症状は出ないようです。Apache 2.2、バーチャルホスト(SNI)、SANs の SSL 証明書 という環境下でのことですし、見た目にはエラーは出ないので実害はそれほどないので気づきにくいケースですね。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA


  • キュア子の紹介

人気記事ランキング