2015년 멀티 테넌트 로드 밸런싱을 위한 SNI

2015년 멀티 테넌트 로드 밸런싱을 위한 SNI

우리는 다중 테넌트 서비스이고 로드 밸런서(SSL 종료를 위한 HAProxy + Apache)에서 SSL을 종료합니다. 이로 인해 전용 IP 요구 사항으로 인해 성장통이 발생했습니다. 그러나 시대가 바뀌었고 우리는 SNI로의 전환을 고려하고 있으므로 2015년에는 SNI를 우리의 표준으로 채택하는 것에 대한 교육적인 의견을 듣고 싶었습니다.

나는 우리의 가정을 개괄적으로 설명할 것이다:

  • POODLE 공격으로 인해 SSL이 종료되었습니다(TLS가 오래 지속됨).
  • TLS에는 SNI가 내장되어 있습니다.
  • IE6/Windows XP( < sp3)는 여러 가지 이유로 종료되었습니다. 그 중 가장 중요한 것은 XP가 EOL되는 것입니다.
  • 현재 IE7 및 기본적으로 IE8에 대한 지원을 종료했습니다.

이제 SNI가 본질적으로 전 세계적으로 지원된다고 가정하는 것이 맞습니까?

... 그리고 ...

지원에 영향을 미칠 수 있는 이 외에도 고려해야 할 시나리오가 있습니까?

... 그리고 마지막으로 ...

이제 HAProxy 1.5가 SSL 종료를 직접 지원하므로 이 서비스를 출시하는 능력에 영향을 미칠 수 있는 SNI와 직접 관련된 경험에 대한 주의 사항이 있습니까?

답변1

이제 SNI가 본질적으로 전 세계적으로 지원된다고 가정하는 것이 맞습니까?

브라우저를 고려한다면 - 그렇습니다.

다른 종류의 응용 프로그램을 처리해야 하는 경우에는 그렇지 않습니다.

  • Python 3에서는 지원되지만 Python 2.7에서는 지원됩니다. 방금 출시된 버전 2.7.9에서만 지원을 받았습니다.
  • Android는 지원이 제한되어 있습니다. HTTPUrlConnection은 오랫동안 지원되었지만 SDK에는 고급 기능을 위한 이전 버전의 Apache HTTPClient가 포함되어 있었고 이 버전은 SNI를 지원하지 않았습니다. 최신 SDK에서는 상황이 바뀌었는지 모르겠습니다.
  • Java는 JDK 1.7에서만 지원됩니다.
  • SNI를 지원하지 않는 검색 엔진용 크롤러가 여전히 있습니다. 에 따르면https://www.mnot.net/blog/2014/05/09/if_you_can_read_this_youre_sniing이는 2014년 5월 Bing, Yahoo, Baidu 및 기타 항목에 포함되어 있습니다.

답변2

이제 SNI가 본질적으로 전 세계적으로 지원된다고 가정하는 것이 맞습니까?

본질적으로 그렇습니다. 하지만 SNI가 필요한 경우 손상에 대해 불평하는 일부 극단적인 경우 사용자를 만날 가능성이 높습니다. 그 사람들에게 귀하의 서비스에 대해 "최근 10년 동안의 브라우저를 사용하십시오"라고 말할 수 있는 능력이 있다면 준비된 것입니다.

지원에 영향을 미칠 수 있는 이 외에도 고려해야 할 시나리오가 있습니까?

브라우저/클라이언트 OS 지원은 큰 것입니다. 하지만 TLS 핸드셰이크의 SNI 부분 전달을 지원하지 않는 SSL 종료 프록시를 사용하는 기업 네트워크에 다른 재미있는 문제가 있을 수 있다고 상상할 수 있습니다. 이로 인해 SNI도 중단될 수 있습니다.

이제 HAProxy 1.5가 SSL 종료를 직접 지원하므로 이 서비스를 출시하는 능력에 영향을 미칠 수 있는 SNI와 직접 관련된 경험에 대한 주의 사항이 있습니까?

HAProxy에 대한 주의 사항에 대해 직접 말할 수는 없습니다. 우리는 SSL 종료를 사용하지만 그 위에 SNI는 사용하지 않습니다.

관련 정보