Virtualhost2 별칭 SSL에 영향을 미치는 Virtualhost1 SSL

Virtualhost2 별칭 SSL에 영향을 미치는 Virtualhost1 SSL

Virtualhost에서 내 와일드카드 하위 도메인에 대한 SSL 파일을 로드하고 있지만 두 번째 가상 호스트가 첫 번째 가상 호스트의 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>

하지만 everything.org.domain.com을 방문하면 두 번째 가상 호스트 대신 첫 번째 가상 호스트에 대한 SSL 파일이 로드됩니다.

첫 번째 또는 두 번째 가상 호스트에 없는 하위 도메인을 시도하더라도 여전히 첫 번째 가상 호스트 SSL 파일이 로드되고 브라우저에서 잘못된 SSL 오류가 발생합니다.

이 문제를 어떻게 해결할 수 있나요?

감사해요

답변1

서버 별칭은 쉼표가 아닌 공백으로 구분되어야 하므로 줄은 ServerAlias다음과 같아야 합니다.

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

단일 블록에 더 많은 ServerAlias지시문을 지정할 수 있으므로 별칭이 많은 경우 구성을 좀 더 읽기 쉽게 만듭니다.

명시적인 구성이 존재하지 않는 호스트를 요청하는 경우 Apache는 찾은 첫 번째 블록을 제공합니다(이것이 바로 "포괄" 사이트를 갖기 위해 마지막 위치에 VirtualHost블록을 포함하는 것이 좋은 이유입니다).ServerAlias *

따라서 귀하의 경우에는 ServerAlias"cert-2.domain.com,*.org.domain.com"을 갖는 서버에 대한 별칭을 정의하기 때문에 어떤 줄도 작동하지 않습니다(어쨌든 예상한 대로는 아닙니다). 이름, 쉼표, 별표 및 모두 포함. 이를 위해 "anything.org.domain.com"을 요청하면 Apache는 이 호스트 이름이 구성에 정의되어 있지 않기 때문에 발견한 첫 번째 블록을 제공합니다.

관련 정보