http 및 https 세션 모두에 대해 SSLServerSocket 클래스를 사용하고 하나의 포트를 청취 할 수 있습니까? (클라이언트가 http 또는 https와 함께 제공되는 자동 검색 기능을 사용)? 또는 두 개의 포트를 열어서 https에 SSLServerSocket을 사용하고 http에 대해 SSLServerSocket을 사용해야합니까? 당신이 뭘 하려는지안전하지 않은 http를위한 SSLSocket?
감사
http 및 https 세션 모두에 대해 SSLServerSocket 클래스를 사용하고 하나의 포트를 청취 할 수 있습니까? (클라이언트가 http 또는 https와 함께 제공되는 자동 검색 기능을 사용)? 또는 두 개의 포트를 열어서 https에 SSLServerSocket을 사용하고 http에 대해 SSLServerSocket을 사용해야합니까? 당신이 뭘 하려는지안전하지 않은 http를위한 SSLSocket?
감사
는 포트 통일라고합니다. 예를 들어 implemented in Grizzly입니다.
당신은 정말 똑바로 읽기에 악수를 시작할 것이기 때문에 직접 HTTP 및 HTTPS 트래픽을 청취하는 SSLServerSocket
를 사용할 수 있지만, 일반 ServerSocket
이 일반 Socket
을 수락 할 때 검색을 시도 할 수 있습니다 처음 몇 바이트를 읽은 다음 TLS 클라이언트 hello 또는 HTTP 요청을 가져온 다음 convert it to an SSLSocket
을 읽습니다.
내가 Socket
으로 시도했다고 말할 수는 없지만 TLS 클라이언트 Hello를 미리 읽고 필요한 경우 다시 푸시해야 할 항목이 possibly using a PushBackInputStream
, as suggested by EJP입니다.
는 (지금까지 내가 알고 있어요으로 그리 즐은 SSLEngine
대신 이에 대한 SSLSocket
사용합니다.)
주 포트 통일을 사용하는 것은 매우 드문 것이다. 앞서 읽어야 할 오버 헤드가 무엇인지 모르겠습니다. 대신에 여러 개의 포트를 사용하는 것은 문제가되지 않습니다 (HTTP와 HTTPS는 기본 포트가 다르기 때문에 두 URL 중 적어도 하나에서 포트를 지정해야합니다).
감사합니다.이게 정말 도움이됩니다. – Igor
포트 443의 클라이언트와 HTTP를 SSLServerSocket으로 대화하고 싶습니까? 그게 가능하다면 나는 아주 놀랄 것입니다. 그러나 꼭 시도하십시오. –
이 답변을 확인하십시오. 한 번 알려 주시면 도움이 될 것 같습니다. http://stackoverflow.com/a/13450695/655756 – n1ckolas