Apacheサービスが設定されています。ドメイン例は domain1.com と domain2.com です。
私のssl.conf(etc/apache2/modes-enabled/ssl.conf)
NameVirtualHost *:443
<VirtualHost 172.17.0.122:443>
ServerAdmin [email protected]
DocumentRoot /var/www/domain1.com/htdocs
ServerName domain1.com:443
SSLEngine On
SSLProtocol all
SSLCertificateFile /var/ssl/domain1/domain1.crt
SSLCertificateKeyFile /var/ssl/domain1.key
SSLCertificateChainFile /var/ssl/intermediate.crt
</VirtualHost>
<VirtualHost 172.17.0.123:443>
ServerAdmin [email protected]
DocumentRoot /var/www/domain2.com/htdocs/
ServerName domain2.com:443
SSLEngine On
SSLProtocol all
SSLCertificateFile /var/ssl/domain2/domain2.crt
SSLCertificateKeyFile /var/ssl/domain2.key
SSLCertificateChainFile /var/ssl/intermediate.crt
</VirtualHost>
ドメイン 1 は http と https で動作し、ドメイン 2 https はドメイン 1 ページを表示するため、ドメイン 2 は http でのみ機能します。サーバーに2つのIPがあります。
ドメイン1の仮想ホスト(etc/apache2/sites-enabled/domain1.com):
<VirtualHost *>
ServerAdmin [email protected]
ServerName www.domain1.com
ServerAlias domain1.com
# Indexes + Directory Root.
DirectoryIndex index.php
DocumentRoot /var/www/domain1.com/htdocs/
# CGI Directory
ScriptAlias /cgi-bin/ /var/www/domain1.com/cgi-bin/
<Location /cgi-bin>
Options +ExecCGI
</Location>
# Logfiles
ErrorLog /var/www/domain1.com/logs/error.log
CustomLog /var/www/domain1.com/logs/access.log combined
</VirtualHost>
apache2ctl -S は以下を示します。
VirtualHost configuration:
172.17.0.122:443 www.domain1.com (/etc/apache2/mods-enabled/ssl.conf:77)
wildcard NameVirtualHosts and _default_ servers:
*:* is a NameVirtualHost default server www.domain3.com (/etc/apache2/sites-enabled/domain3.com:1)
port * namevhost www.domain3.com (/etc/apache2/sites-enabled/domain3.com:1)
port * namevhost www.domain2.com (/etc/apache2/sites-enabled/domain2.com:1)
port * namevhost www.domain1.com (/etc/apache2/sites-enabled/domain1.com:1)
domain1 https を正しく表示する構成です。
答え1
:443
ServerNameセクションから削除されました。次の場合、名前の一部と見なされます。いいえVirtualHost ServerName エントリが一致し、Apache が見つけた最初の VirtualHost サイトを提供します。
編集するこんな。また、あなたの声明はNameVirtualHost
あなたの凧とVirtualHost
対照的であるので、詳細を見てください。
そのアドレスを使用する複数のVHostがあると宣言してから、*:443
VHostをに割り当てます172.16.0.123:443
。これは異なるアドレスなので、Apacheはそれを認識しません。
ステートメントを変更するNameVirtualHost
か、<VirtualHost>
一致するようにフレーズを変更します。