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 証明書 という環境下でのことですし、見た目にはエラーは出ないので実害はそれほどないので気づきにくいケースですね。

ITエンジニア募集中!

キュアコード株式会社はITエンジニアを募集しております。少人数の職場なので、上流・下流やサーバー・クライアント対応の垣根なく、あなたの強みを活かしながら いろいろなことにチャレンジ可能です。エンジニアとしての未経験の方、経験が少ない方も歓迎しています。

下記よりITエンジニア募集の採用情報をご覧いただけます。


コメントを残す

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

CAPTCHA