SSL 가상 호스트를 모방하기 위해 mod_rewrite를 사용하시겠습니까?

StackOverflow https://stackoverflow.com/questions/8355

  •  08-06-2019
  •  | 
  •  

문제

Apache 2.2와의 SSL 연결을 통해 URL을 투명하게 다시 작성하는 가장 좋은 방법은 무엇입니까?

Apache 2는 기본적으로 SSL 연결에 대해 여러 이름 기반 가상 호스트를 지원하지 않으며 mod_rewrite가 이를 지원한다고 들었습니다.나는 이런 일을하고 싶습니다 :

사이트에 액세스할 수 있도록 서버를 설정했습니다.

https://secure.example.com/dbadmin

하지만 나는 이것을 갖고 싶습니다 https://dbadmin.example.com

재작성 규칙이 dbadmin.example.com을 secure.example.com/dbadmin으로 재작성하지만 클라이언트의 주소 표시줄에 재작성을 표시하지 않도록(예:클라이언트는 여전히 https 전체에서 dbadmin.example.com만 볼 수 있습니까?

도움이 되었습니까?

해결책

secure.example.com과 dbadmin.example.com을 모두 제공하도록 단일 VirtualHost를 구성합니다(이를 달성하는 유일한 *:443 VirtualHost로 만듭니다).그런 다음 사용할 수 있습니다 mod_rewrite dbadmin.example.com에 대한 요청의 URI를 조정하려면 다음을 수행하세요.

<VirtualHost *:443>
    ServerName secure.example.com
    ServerAlias dbadmin.example.com

    RewriteEngine on
    RewriteCond %{SERVER_NAME} dbadmin.example.com
    RewriteRule !/dbadmin(.*)$ /dbadmin$1
</VirtualHost>

SSL 인증서는 secure.example.com 및 dbadmin.example.com 모두에 대해 유효해야 합니다.Terry Lorber가 언급한 와일드카드 인증서일 수도 있고 다음을 사용할 수도 있습니다. 제목대체이름 추가 호스트 이름을 추가하는 필드입니다.

문제가 발생하면 먼저 설정하세요. <VirtualHost *> SSL 없이도 작동하는지 확인하세요.SSL 연결 및 인증서는 URI 재작성이 작동한 후에 설정할 수 있는 별도의 복잡성 계층입니다.

다른 팁

SSL 인증서가 "와일드카드" 또는 다중 사이트 종류가 아닌 이상 이것이 작동하지 않을 것이라고 생각합니다.재작성은 브라우저에 표시되며 주소 표시줄의 이름은 인증서에 대해 유효해야 합니다. 그렇지 않으면 사용자에게 보안 오류가 표시됩니다(항상 수락하고 계속할 수 있지만 원하는 대로 들리지 않습니다). ).

여기.

Apache mod_rewrite가 있거나 Apache를 직접 설정하도록 설정할 수 있습니다. https://dbadmin.example.com 서버의 path/to/example.com/dbadmin에

<VirtualHost *>
ServerName subdomain.domain.com
DocumentRoot /home/httpd/htdocs/subdomain/
</VirtualHost>
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top