1

CentOS/Apache+OpenSSL サーバーがあります。ワイルドカード サブドメインを含む 2 つのドメイン名をホストしています (アプリケーション ロジックは正しいサイトを表示します)。

https://*.testing1.com

https://*.testing2.com

HTTP経由でうまく機能します:-

   <VirtualHost *:80>
  # Admin email, Server Name (domain name) and any aliases
  ServerAdmin webmaster@testing1.com
  ServerName  testing1.com
  ServerName  testing2.com

  ServerAlias *.testing1.com *.testing2.com

  # Index file and Document Root (where the public files are located)
  DirectoryIndex index.html index.php
  DocumentRoot /home/app/public_html/public

</VirtualHost>

testing1.com と testing2.com の両方で認証された 2 つのワイルドカード SSL を購入しましたが、この構造での設定方法がわかりません:-

    <VirtualHost *.testing1.com:443>
     SSLEngine On
     SSLCertificateFile /etc/httpd/ssl/*.testing1.com.crt
     SSLCertificateKeyFile /etc/httpd/ssl/*.testing1.com.key
     SSLCACertificateFile /etc/httpd/ssl/geotrust.cer

     ServerAdmin john@testing1.com
     ServerName testing1.com
     ServerAlias *.testing1.com

        DirectoryIndex index.html index.php
        DocumentRoot /home/app/public_html/public

  </VirtualHost>

   <VirtualHost *.testing2.com:443>
     SSLEngine On
     SSLCertificateFile /etc/httpd/ssl/*.testing2.com.crt
     SSLCertificateKeyFile /etc/httpd/ssl/*.testing2.com.key
     SSLCACertificateFile /etc/httpd/ssl/geotrust.cer

     ServerAdmin john@testing2.com
     ServerName testing2.com
     ServerAlias *.testing2.com

        DirectoryIndex index.html index.php
        DocumentRoot /home/app/public_html/public

  </VirtualHost>

上記の SSL は、*.testing1.com 定義でも、testing1.com だけでも機能しません。

また、testing2.com についてもこれを繰り返す必要があります。

4

2 に答える 2

3

名前ベースの仮想ホストと SSL は、すべての仮想ホストが同じドメイン内にあり、そのドメインにワイルドカード SSL 証明書がある場合にのみ機能します。

しかし、2 つの異なるドメインがあります。

この場合、SSL が有効な各仮想ホストに独自の IP アドレスを指定した場合にのみ機能します。そのため、名前ベースではなく、IP ベースの仮想ホストを使用する必要があります。

説明: 要求された ServerName は HTTP 要求ヘッダーに含まれていますが、その前に SSL 暗号化が既にセットアップされている必要があります。したがって、ServerName は、暗号化がセットアップされた後にのみ使用できます。したがって、Apache はどの SSL 証明書が提供されているかを知ることができず、その特定の IP アドレスで最初に利用可能なものだけを使用します。

于 2012-11-10T22:32:28.800 に答える