mod_sslの設定では大変お世話になりました。
継続してSSLの設定をしているのですが、
またまた問題にぶつかりご質問させていただくことにいたしました。
現在Apacheで名前ベースのマルチドメイン設定をしているのですが、
おやじさんのホームページの解説にあるとうりにSSLの設定をした後、
各ドメインに接続
exp.
https://test1.zive.net
https://test2.zive.net
した結果、どちらでアクセスしても ssl.conf のバーチャルドメインで
設定した DocumentRoot が表示されます。
ここまでは理解できるのですが、
test1及びtest2の各ドメインにアクセスした際、
それぞれApacheのバーチャルドメインで設定したドキュメントルートを
表示させることは可能なのでしょうか?
単純に言うとポート80でアクセスした時と443でアクセスした時に
どちらでアクセスしても同じ内容が表示されるようにしたいのです。
Googleなどで検索して色々調べた結果、
各ドメインごとにSSL認証を個別に設定する場合、
IPベースのバーチャルドメインでなければいけないという文章を見つけました。
私の場合もIPベースでなければ不可能な事をしようとしているのでしょうか?
質問続きで申し訳ありません。
隠れおやじさんファンの中満と申します.
> 現在Apacheで名前ベースのマルチドメイン設定をしているのですが、
> おやじさんのホームページの解説にあるとうりにSSLの設定をした後、
> 各ドメインに接続
> exp.
> https://test1.zive.net
> https://test2.zive.net
> した結果、どちらでアクセスしても ssl.conf のバーチャルドメインで
> 設定した DocumentRoot が表示されます。
> ここまでは理解できるのですが、
> test1及びtest2の各ドメインにアクセスした際、
> それぞれApacheのバーチャルドメインで設定したドキュメントルートを
> 表示させることは可能なのでしょうか?
当然です.Apache-2.xであれば通常SSL関連の設定はssl.confで行うことになりますが,
この中のVirtualHostセクションを正しく設定されていないのかと.
> 単純に言うとポート80でアクセスした時と443でアクセスした時に
> どちらでアクセスしても同じ内容が表示されるようにしたいのです。
FQDNが1つであれば問題ないですね.
80/tcpと443/tcpの場合のDocumentRootを同じにすれば良いのです.
> Googleなどで検索して色々調べた結果、
> 各ドメインごとにSSL認証を個別に設定する場合、
> IPベースのバーチャルドメインでなければいけないという文章を見つけました。
その通りです.ネームベースの場合はブラウザの警告メッセージが出ます.
> 私の場合もIPベースでなければ不可能な事をしようとしているのでしょうか?
> 質問続きで申し訳ありません。
単に
http://www.example.com/
と
https://secure.example.com/
のDocumentRootを同一にされたいのであれば全く不可能なことではありません.
詳しくはssl.confのVirtualHostセクションを追いかけてみてください.
お返事ありがとうございます。
> 詳しくはssl.confのVirtualHostセクションを追いかけてみてください.
httpd.confと同じ感覚でバーチャルホストの設定をしてみたのですが
これでは機能しないようですね。
ssl.confの設定を模索中です。
現在のssl.confのバーチャルホスト設定は
<VirtualHost *:443>
DocumentRoot "/home/test1/html"
ServerName test1.zive.net:443
ServerAdmin admin@test1.zive.net
ErrorLog /home/test1/ssl_error_log
TransferLog /home/test1/ssl_access_log
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /usr/local/certs/server.crt
SSLCertificateKeyFile /usr/local/certs/server.key
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
<VirtualHost *:443>
DocumentRoot "/home/test2/html"
ServerName test2.zive.net:443
ServerAdmin admin@test2.zive.net
ErrorLog /home/test2/ssl_error_log
TransferLog /home/test2/ssl_access_log
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /usr/local/certs/server.crt
SSLCertificateKeyFile /usr/local/certs/server.key
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
上記のようにしてみましたが、
これでは
[warn] _default_ VirtualHost overlap on port 443, the first has precedence
とエラーが出てしまいます。
ssl.confの記述方法が根本的に間違っているのでしょうね。
う〜ん、奥が深いです。^^;
未だに試行錯誤中です^^;
http://village.infoweb.ne.jp/~fwky3132/solaris/apache2.html
を参考にしてhttpd.confに以下の設定をしたのですが
以前と同じく2つのドメインともに同じドキュメントルートを参照してしまいます。
<IfDefine SSL>
Listen 443
NameVirtualHost 192.168.1.10:443
<VirtualHost test1.zive.net:443>
ServerAdmin test1@test1.zive.net
DocumentRoot /home/test1/docs
ServerName test1.zive.net
ScriptAlias /cgi-bin/ "/home/test1/cgi-bin/"
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /usr/local/certs/server.crt
ErrorLog /home/test1/ssl_error_log
CustomLog /home/test1/ssl_access_log common
</VirtualHost>
<VirtualHost test2.zive.net:443>
ServerAdmin test2@test2.zive.net
DocumentRoot /home/test2/docs
ServerName test2.zive.net
ScriptAlias /cgi-bin/ "/home/test2/cgi-bin/"
SSLEngine on
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
SSLCertificateFile /usr/local/certs/server.crt
ErrorLog /home/test2/ssl_error_log
CustomLog /home/test2/ssl_access_log common
</VirtualHost>
</IfDefine>
ちなみにssl.confは前の書き込みのままです。
SSLで各ドメインごとにドキュメントルートを変更する方法をご存じの方、
アドバイスいただければ幸いです。
こんばんは。
下記の、19.3.1.2. SSLの注意はご覧になりましたか?
http://www.jp.redhat.com/manual/Doc9/rhl-cg-ja-9/s1-httpd-virtualhosts-settings.html