2016-11-18 7 views
0

가상 호스트 (Apache)에서 실행되는 하위 도메인이 몇 개인 우분투 서버가 있습니다. 대부분의 가상 호스트는 하나의 파일에 있지만, 하나는 두 개의 파일로 분리되어 있습니다 (Let 's Encrypt는 하나의 .conf 파일에서 다중 가상 호스트를 지원하지 않기 때문에). 하위 인증서 중 하나에만 SSL 인증서가 설치되어 있습니다. 다른 도메인에서는 현재 SSL을 신경 쓰지 않습니다.SSL 포트를 통한 하위 도메인 리디렉션 방지

내가 겪고있는 문제는 다른 하위 도메인에 대한 HTTPS 요청이 하나의 하위 도메인으로 라우팅된다는 것과 내가 원하지 않는 문제입니다.

그래서 예를 들어, 여기 내 주요의 .conf 파일 구조입니다 :

<VirtualHost *> 
    ServerAdmin [email protected] 
    ErrorLog /var/log/apache2/error.log 
    CustomLog /var/log/apache2/access.log combined 
</VirtualHost> 

<VirtualHost *:80> 
    ServerName domain.com 
    ServerAlias www.domain.com 
    DocumentRoot /var/www/domain 
    <Directory "/var/www/domain"> 
     ... 
    </Directory> 
</VirtualHost> 

<VirtualHost *:80> 
    ServerName sub.domain.com 
    DocumentRoot /var/www/sub_domain 
    <Directory "/var/www/sub_domain"> 
     ... 
    </Directory> 
</VirtualHost> 

그리고 여기 내 SSL 설치 하위 도메인의 .conf 파일 구조입니다 :

<VirtualHost *:80> 
    ServerName ssl.domain.com 
    DocumentRoot /var/www/ssl_domain 
    <Directory "/var/www/ssl_domain"> 
     .... 
    </Directory> 
</VirtualHost> 

그리고 마지막으로, 여기의 .conf 파일입니다 HTTPS 요청을 수신 대기하도록 생성 된 암호화를 사용합니다.

<IfModule mod_ssl.c> 
    <VirtualHost *:443> 
     ServerName ssl.domain.com 
     DocumentRoot /var/www/ssl_domain 
     <Directory "/var/www/ssl_domain"> 
      .... 
     </Directory> 
     SSLCertificateFile /path/to/cert.pem 
     SSLCertificateKeyFile /path/to/key.key 
     Include /etc/letsencrypt/options-ssl-apache.conf 
     SSLCertificateChainFile /path/to/chain.pem 
    </VirtualHost> 
</IfModule> 

도메인의 y 잘 작동합니다. SSL 사용 하위 도메인에 대한 HTTPS 요청이 정상적으로 작동합니다. 그러나 'ssl.domain.com'이 아닌 다른 도메인에 대한 HTTPS 요청은 먼저 '연결이 안전하지 않습니다.'라는 오류를 생성 한 다음 'ssl.domain.com'에서로드합니다. 나는 그것이 정직한 경우에 다만 그것을 생성하고 그것을 남겨 두는 것을 선호 할 것입니다. 이 리디렉션을 어떻게 방지합니까?

난에서 SSL 하위 도메인의 가상 호스트를 변경 시도했습니다 있음을 유의하십시오 :

<VirtualHost *:443> 

에 : 영향을 미치지 아니합니다

<VirtualHost ssl.domain.com:443> 

.

편집 : https를 http로 변경하기 위해 .htaccess 다시 쓰기 규칙을 구현해 보았습니다. .htaccess를 치기 전에 요청이 가상 호스트에 충돌 할 것이라고 생각하면 작동하지 않을 것이라고 생각했지만 시도해 보겠다고 생각했습니다. 네, 안돼요.

답변

0

그래서 모든 사람들이 모니터에서 고함을 지르며, 나는 분명히 서버 전체에 SSL을 설치했습니다.

0

NameVirtualHost를 정의해야한다고 생각합니다. 하나의 IP로 여러 도메인을 처리하는 데 도움이 될 것입니다. httpd.conf에서 NameVirtualHost를 정의하십시오.

그런 다음 정의하는 것이 작업을 수행합니다. 아파치를 다시 시작하십시오.

+0

불행히도 트릭을 수행하지 않는 것 같습니다. 나는 httpd.conf에'NameVirtualHost * : 80'을 추가했으나 문제는 지속된다. (또한 아파치를 재시작하면 경고 메시지를 보낸다 :'AH00548 : NameVirtualHost는 효과가 없으며 다음 릴리즈에서는 제거 될 것이다' – CGriffin

관련 문제