Virtualhost1 SSL が Virtualhost2 エイリアス SSL に影響を与える

Virtualhost1 SSL が Virtualhost2 エイリアス SSL に影響を与える

ワイルドカード サブドメインの SSL ファイルを仮想ホストからロードしていますが、2 番目の仮想ホストが最初の仮想ホストの SSL ファイルをロードし、ブラウザーに無効な証明書エラーが表示されます。

設定はこちら

    <VirtualHost *:443>
     ServerName cert-1.domain.com 
     ServerAlias cert-1.domain.com,*.net.domain.com 
    DocumentRoot /home/myuser/public_html
     ServerAdmin [email protected]

     UseCanonicalName Off  

   <IfModule mod_suphp.c>
   suPHP_UserGroup myuser myuser
   </IfModule>
   <IfModule suexec_module>
   <IfModule !mod_ruid2.c>
   SuexecUserGroup myuser myuser 
   </IfModule>
   </IfModule>

   <IfModule ssl_module>
   SSLEngine on 
  SSLCertificateFile /etc/letsencrypt/live/cert-1.domain.com/fullchain.pem
   SSLCertificateKeyFile /etc/letsencrypt/live/cert-1.domain.com/privkey.pem
   </IfModule>
   </VirtualHost>





    <VirtualHost *:443>
     ServerName cert-2.domain.com
     ServerAlias cert-2.domain.com,*.org.domain.com 
     DocumentRoot /home/myuser/public_html
     ServerAdmin [email protected]

     UseCanonicalName Off  

     <IfModule mod_suphp.c>
       suPHP_UserGroup myuser myuser
     </IfModule>
     <IfModule suexec_module>
       <IfModule !mod_ruid2.c>
         SuexecUserGroup myuser myuser 
      </IfModule>
     </IfModule>

  <IfModule ssl_module>
   SSLEngine on 
  SSLCertificateFile /etc/letsencrypt/live/cert-2.domain.com-2/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/cert-2.domain.com-2/privkey.pem
   </IfModule> 
   </VirtualHost>

しかし、anything.org.domain.comにアクセスすると、2番目の仮想ホストのSSLファイルではなく、最初の仮想ホストのSSLファイルが読み込まれます。

最初の仮想ホストまたは 2 番目の仮想ホストにないサブドメインを試した場合でも、最初の仮想ホストの SSL ファイルが読み込まれ、ブラウザーは無効な SSL エラーをスローします。

どうすれば解決できるでしょうか

ありがとう

答え1

サーバー エイリアスはコンマではなくスペースで区切る必要があるため、行ServerAliasは次のようになります。

ServerAlias cert-1.domain.com *.net.domain.com

1 つのブロックに複数のServerAliasディレクティブを指定できるため、エイリアスが多数ある場合に構成が読みやすくなることに注意してください。

明示的な構成が存在しないホストを要求した場合、Apache は最初に見つかったブロックを提供します (これが、 "catch-all" サイトを持つために、最後の場所にVirtualHostブロックを含めることが良い考えである理由ですServerAlias *)。

したがって、あなたの場合、どのServerAlias行も機能しません (少なくとも期待どおりには機能しません)。なぜなら、カンマ、アスタリスクなどを含む「cert-2.domain.com,*.org.domain.com」という名前を持つサーバーのエイリアスを定義しているからです。このため、「anything.org.domain.com」を要求すると、Apache は最初に遭遇したブロックを提供します。このホスト名は構成で定義されていないためです。

関連情報