他のドメインのApache 2証明書

他のドメインのApache 2証明書

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

:443ServerNameセクションから削除されました。次の場合、名前の一部と見なされます。いいえVirtualHost ServerName エントリが一致し、Apache が見つけた最初の VirtualHost サイトを提供します。

編集するこんな。また、あなたの声明はNameVirtualHostあなたの凧とVirtualHost対照的であるので、詳細を見てください。

そのアドレスを使用する複数のVHostがあると宣言してから、*:443VHostをに割り当てます172.16.0.123:443。これは異なるアドレスなので、Apacheはそれを認識しません。

ステートメントを変更するNameVirtualHostか、<VirtualHost>一致するようにフレーズを変更します。

関連情報