Apache2에서 SSL 대체를 비활성화하거나 일치하는 인증서 없이 리디렉션합니다.

Apache2에서 SSL 대체를 비활성화하거나 일치하는 인증서 없이 리디렉션합니다.

내 서버에 여러 개의 가상 호스트가 있습니다. 내가 서비스를 제공한다고 가정해 보겠습니다.

www.example.com
sub.example.com
www.example.nl

내 DNS 구성에서는 모두 동일한 서버를 가리킵니다.

apache2 구성에는 http에 대한 기본 구성 파일과 https에 대한 기본 구성 파일, 그리고 추가 사이트에 대한 추가 가상 호스트가 있습니다. 거의 일치하는 항목을 모두 로 리디렉션하고 싶습니다 www.example.com. 모든 특정 사이트에는 인증서가 있습니다.

그래서 내 파일은 다음과 같습니다

000-default.conf (redirects to https://www.example.com)
default-ssl.conf (serves https://www.example.com)
sub.example.com.conf (redirects to https://sub.example.com)
sub.example.com-ssl.conf (serves https://sub.example.com)
www.example.nl.conf (redirects to https://www.example.nl)
www.example.nl-ssl.conf (serves https://www.example.nl)

문제는 이제 다른 요청(예: for be-creative.example.nl)이 첫 번째 로드된 구성으로 기본 설정된다는 것입니다. 이는 http( 000-default일치 및 리디렉션)에서는 작동하지만 에 대해 로드된 유효한 인증서가 없기 때문에 https에서는 작동하지 않습니다 be-creative.example.nl. 따라서 유효한 페이지를 리디렉션하거나 제공할 수 없습니다.

비활성화하면 default-ssl.conf요청이 일치 sub.example.com-ssl.conf하고 잘못된 인증서가 계속 제공됩니다.

질문: 인증서가 없는 이러한 요청을 어떻게 우아하게 처리할 수 있습니까? 유효한 일치 인증서가 없으면 어떻게 http로 리디렉션할 수 있나요?

답변1

내 서버(CentOS, Apache 2.4)에서 이 문제를 해결하는 방법은 유효한 SSL 인증서(Let's Encrypt에서 무료로 제공)가 있는 일반 페이지(invalidssl.example.com)를 갖고 이를 기본 구성에 설정하는 것입니다. 이렇게 하면 SSL이 아닌 도메인에 대한 모든 https 요청이 대신 오류 메시지가 포함된 일반 페이지를 표시하게 됩니다.

귀하의 질문에 답변하려면:

브라우저 경고를 트리거하지 않으면서 https를 통해 페이지를 요청하는 방문자(페이지 또는 전달 응답)에게 콘텐츠를 제공하는 유일한 방법은 요청된 도메인에 대해 유효한 SSL 인증서로 응답하는 것입니다. 요즘에는 무료 SSL 인증서를 쉽게 사용할 수 있으므로 개인적으로 이 문제가 발생할 이유가 없습니다.암호화하자!).

관련 정보