BitArts Blog

ロードバイク通勤のRubyプログラマで伊豆ダイバー。の個人的なブログ。

ApacheのNameVirtualHostでSSL

名前ベースのバーチャルホストは SSL プロトコルの特徴により、 SSL セキュアサーバには使えません。 / 名前ベースと IP ベースのバーチャルホストの比較 (apache.org)

とのことなんだけど、試行錯誤した結果次のようにNameVirtualHostを並べたところ、できたっぽいんだけど、なんか問題あるのかな?

NameVirtualHost 192.168.0.1:80
NameVirtualHost 192.168.0.1:443

<VirtualHost 192.168.0.1:80>
  ServerName www.bitarts.co.jp
  DocumentRoot /home/miyamae/htdocs
</VirtualHost>

<VirtualHost 192.168.0.1:443>
  ServerName www.bitarts.co.jp
  DocumentRoot /home/miyamae/htdocs
  SSLEngine on
  SSLCertificateFile /etc/httpd/conf/ssl.crt/stingray.crt
  SSLCertificateKeyFile /etc/httpd/conf/ssl.key/stingray.key
</VirtualHost>

コメント

2007/12/ 6 11:32 from Anonymous

この設定は「名前ベースのバーチャルホスト」になってないからSSLで使えるのは当然
「名前ベースのバーチャルホスト」としてちゃんと設定すれば使えないのは明白

名前ベースのバーチャルホストの意味わかってないでしょ?
こんなトンチンカンな内容が検索でトップに引っかかると迷惑なのよね

2008/10/18 16:47 from Anonymous

先に証明書とかを送るので1つのリスナー(IP:ポート)に
SSL,非SSL,第2のSSL設定の混在はできない

最初のVirtualHostでSSLEngine onすると
そのポートはSSLになってさらにほかのVirtualHostは見ない
VirtualHostの上のレベルでSSLEngine onにしてても名前による切り替えはしてくれない(これはエラーになる)

最初のVirtualHostでSSLEngine offにすると
名前で振り分けるけど次のVirtualHostで
SSLEngine onにしてもSSLはonにはならない

apacheでエラーにしてくれればいいのにな

ぐーぐるさんで9番目だったの少しまともな情報かいとく