新しいクライアントサイトでhttpsをテストするための自己署名証明書を作成したApache2.4サーバーがあります。私が遭遇している問題は、別のvhosts.confファイルで設定した定義済みの仮想ホストに移動しようとすると、ssl.confファイルが常に自分のサイトに読み込まれることです。
誰かが、目的の仮想ホストがロードされず、デフォルトのみがなぜロードされないのかを理解するのを手伝ってくれませんか?
私のssl.confの内容
Listen 443 https
SSL Global Context
SSLPassPhraseDialog exec:/usr/libexec/httpd-ssl-pass-dialog
SSLSessionCache shmcb:/run/httpd/sslcache(512000)
SSLSessionCacheTimeout 300
SSLRandomSeed startup file:/dev/urandom 256
SSLRandomSeed connect builtin
SSLCryptoDevice builtin
<VirtualHost _default_:443>
DocumentRoot "/var/www/html"
ServerName localhost:443
ErrorLog logs/default_ssl_error_log
TransferLog logs/default_ssl_access_log
LogLevel warn
SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!SEED:!IDEA
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
<Directory "/var/www/cgi-bin">
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-5]" \
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 demo.ffh.com:443>
ServerAdmin [email protected]
ServerName demo.ffh.com
DocumentRoot "/var/www/vhosts/ffh/public"
RewriteEngine On
# And THIS doesn't seem to be working at all!
LogLevel debug rewrite:trace8
<Directory "/var/www/vhosts/ffh/public/">
AllowOverride all
SSLOptions +StdEnvVars
#Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
SSLRequireSSL On
</Directory>
SSLEngine on
SSLCertificateKeyFile /etc/httpd/ssl/ssl.key/demo_ffh.key
SSLCertificateFile /etc/httpd/ssl/ssl.crt/demo_ffh.crt
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
CustomLog logs/ssl_ffh-access.log combined
ErrorLog logs/ssl_ffh-error.log
</VirtualHost>
デフォルトを優先してvhosts.confサイトが無視されている理由を誰かが知っていますか?そして、どうすればこれを修正できますか?これで一日中壁に頭をぶつけてきました。
注:「ドメインの代わりにvhost.confでIPアドレスと*:443を試したが、まだ愛情がないことを声に出してみる価値はあるだろう」
私はこの問題を抱えており、4つの解決策は
マシン全体にSSL証明書が1つしかない場合は、これで問題ありません。
これにより、SSL.confの構成が提供され、複数のSSL証明書の独自のVirtualHostエントリを決定できます(必要な場合)
これは、vhosts.confファイル内の複数のSSL証明書でも同様に機能しますが、名前を変更しているため、汚い気分になります。 010-vhosts.conf 020-ssl.confのconf.modules.d-meets-sitesenabled構文を使用すると、少し汚れが少なくなると思います。
ええと...多分何人かの人々のために..私はそれが好きではありませんでした。
わかりました...私はそれを修正したと思います。 O.o
この作品を作ったのは正確にはわかりませんが、最後に行ったことがいくつかありました。
まあ...多分ここで学んだ教訓は?