HTTP 헤더를 통해 SSL 프로토콜 정보를 백엔드에 전달


13

푸들 취약점이 최근에 밝혀진 후 우리 팀은 SSLv3에서 계속하기로 결정했습니다. 그러나 완전한 제거하기 전에, 그들은 할 경고 일일 사용자 브라우저 사용이 SSLv3에 사용되지 않는 것으로합니다. 그래서 우리는 아이디어를

  • 프런트 엔드 SSL 오프 로딩에서 프로토콜 (SSLv3, TLS1 등) 감지 (nginx 사용)
  • HTTP 헤더를 통해 해당 정보 (SSL 프로토콜)를 Apache-backend로 전달하십시오.

그런 다음 백엔드 코드는 해당 헤더를 처리 하고 클라이언트가 SSLv3을 사용하는 경우 경고를 표시 합니다 .

nginx에 기능이 있음을 알고 있습니다 proxy_set_header. 그래서 이것은 간단합니다

proxy_set_header X-HTTPS-Protocol $something;

이제 문제는 분명히 nginx는 클라이언트가 사용하는 프로토콜을 알고 있지만 HTTP 헤더를 통해 해당 정보를 백엔드로 전달하는 방법은 무엇입니까?

감사


SSLv3을 사용 하는 비슷한 스레드 Apache 리디렉션 사용자가 지적한 것처럼 이 아이디어는 매우 나쁜 아이디어가 될 수 있습니다.

HTTP 트래픽이 TLS 터널을 통해 전송되기 전에 TLS 핸드 셰이크가 발생하기 때문입니다. 백엔드가 SSL 프로토콜을 감지 할 때까지 클라이언트는 첫 번째 요청에서 개인 데이터를 보냈을 수 있습니다. 영구 및 장기 솔루션의 경우 SSLv3을 비활성화하는 것을 고려해야합니다.

답변:


14

Nginx는 config에서 사용할 수있는 많은 변수를 사용합니다. 이 페이지 는 변수의 전체 목록을 제공했습니다. HTTPS 요청에서 프로토콜을 보유하는 변수는 ssl_protocol입니다. 소환:

$ssl_protocol

설정된 SSL 연결의 프로토콜을 반환합니다.

따라서 proxy_set_header구성은

proxy_set_header X-HTTPS-Protocol $ssl_protocol;

다른 참조 : here


$ ssl_protocol의 끝에 세미콜론이 없습니다 (serverf * l은 6 개의 문자를 변경해야하므로 변경할 수 없습니다).
danger89

@ danger89 완료 그
삼매 관청
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.