2012-10-26 1 views
0

역 https 프록시 뒤에 PSGI/Plack 응용 프로그램이 호스팅되어 있습니다. 방문자는 클라이언트 인증서로 인증됩니다. 나는 데이터를 전달하기 위해 웹 소켓을 사용한다. (브라우저에 "tail -f"의 출력을 비동기 적으로 보낸다.) 애플리케이션은 역방향 https 프록시를 통해 액세스 할 때 직접 액세스 할 때 잘 작동하지만 클라이언트 인증서 인증을 사용하는 방법이 있는가? ? WebSocket을클라이언트 인증서 인증을 사용하는 보안 http 서버를 통한 웹 소켓

답변

3

2 개 가지 옵션이 있습니다 :

  1. 는 리버스 프록시는 TLS를 종료 클라이언트 인증서를 기반 인증을하고

  2. 가 역방향 프록시 가지고

    뒤에 웹 소켓 서버에 암호화되지 않은 트래픽을 전송 되세요 TLS를 WebSocket 서버에 전달하지 않음

2.를 사용하면 TLS 및 클라이언트 인증서 기반 인증을 구현하는 WebSocket 서버가 필요합니다. 여기

은 아우토반을 기반으로 TLS 지원 웹 소켓 서버 예입니다 (파이썬/- 트위스트 기준) :

당신은 여기 예제를 다음 클라이언트 인증서의 인증을 추가 할 수 있습니다

면책 조항 : 저는 Autobahn의 저작자이며 Tavendo에서 일합니다.

+0

감사합니다. 옵션 2 : Perl websocket 서버 (기술이 아닌 다른 이유로)를 사용하고 SSL을 지원하는 서버가 없다는 것을 알고 있습니다. 옵션 1은 SSL 지원이있는 WS 서버가 필요 없기 때문에 검토해야합니다. 내가 문제가 있으면 여기에보고 할 것이다. 다시 한 번 감사드립니다. 문서는 목적에 맞게 작성되었습니다. –

+0

@oberstet, 안녕하세요, 토네이도의 websocket 구현에 대한 websocket python 클라이언트를 사용하려고합니다. 실제로 세션 ID로 사용자를 추적하는 장고 앱에 대한 인증을 수행하고 있습니다. 문제는 다음과 같습니다. 세션 ID를 Tornado websocket 서버에 전달하기 위해 헤더를 추가 할 수 없습니다. 세션 ID는 세션 저장소와 대조하여 이미 존재하는 websocket python 클라이언트 구현에 대해 검사합니다. 아우토반이 그 일을 할 수있게 해 주시면 고맙게 생각합니다. 또한, 만일 Autobahn가 나를 위해 약간의 방법으로이 과정을 용이하게 할 수 있으면, 나를 안내 해주세요. 감사! – securecurve

+0

@oberstet, on_open 중에도이 작업을 수행해야합니다. – securecurve