2016-07-23 3 views
0

우리의 플랫폼에서 다음과 같은 방법으로 호스팅 하위 도메인이 많이 있습니다Nginx를 사용하여 www를 베어 도메인에 리디렉션하는 방법은 무엇입니까?

server { 
    listen   443 ssl; 
    server_name  *.company.com; 
//... 
} 

불행하게도이있는 요청을 일치는 www.something.company.com하지만 SSL 키가이 기능을 지원하지 않고 내가 요청을 리디렉션 싶습니다 www로 시작합니다. 나머지 요청 (예 : something.company.com)

가장 좋은 방법은 무엇입니까?

내가 작동하지 않았다 다음을 사용하려고했다 :

server_name  *.company.com; 
    if ($host ~* ^www\.(.*\.company\.com)$) { 
    return 301 $scheme://$1; 
    } 
+1

'nginx'를 [URL에서'www.' 접두사를 잃어 버리면] 쉽게 구성 할 수 있습니다. (http://stackoverflow.com/questions/7947030/nginx-no-www-to-www-and- www-to-no-www). 그러나 SSL 인증서가 www 도메인에 유효하지 않은 경우 클라이언트는 처음에는 연결하지 않습니다. 와일드 카드 인증서가있는 경우에만 유용합니다 (이 경우에는이 질문을하지 않는 것이 좋습니다) –

답변

0

당신은 리디렉션에 있다고 할 수 없어 다음 SSL/TLS 연결이 HTTP 요청과 301 리디렉션 응답하기 전에이다. 그러나 * .company.com 인증서 만 있으면 한 레벨 (a.compaby.com)에서 2 개 이상 (a.b.company.com 또는 www.a.company.com)이 아닌 경우에만 유효합니다.

유일한 해결책은 인증서의 모든 도메인을 명시 적으로 나열하는 것입니다.

관련 문제