동일한 포트에서 HTTP 및 HTTPS 연결을 통해 트래픽을 처리 할 수있는 Indy 및 OpenSSL을 사용하여 Delphi XE3에서 웹 서버를 설정하려고합니다.Delphi XE3에서 TIdTCPServer 및 OpenSSL을 사용하여 동일한 포트에서 SSL 및 비 SSL 트래픽을 지원하는 방법은 무엇입니까?
나는 이것에 대한 두 가지 주요 접근법을 보았으며 둘 다 나를 위해 효과가없는 것으로 보인다.
첫 번째 : Up-front TLS/SSL. 이것은 비보안 핸드 셰이크의 "Client-Hello"부분을 찾기 위해 스트림의 처음 몇 바이트를 읽는 것과 서버 SSL 핸드 셰이크 응답을 호출하는 (발견되는 경우) 부분을 읽는 것을 포함하지만, 그렇게하면 OpenSSL 라이브러리가 인식하지 못합니다 나는 메시지의 선두 바이트를 제거 했으므로 악수를했다.
둘째 : TLS 이후 STARTTLS (또는 이에 상응하는 금액). 여기에는 특수 문자 집합 (STARTTLS)이 전송되며 바로 뒤에 "Client-Hello"가옵니다. 그런 다음 서버는 전체 SSL 핸드 셰이크 메시지를 그대로 OpenSSL 라이브러리로 전달합니다. 이 방법의 문제점은 대부분의 웹 브라우저가이를 지원하지 않는다는 것입니다 (RFC 2817). 두 가지 방법에 대한 요약
, 이쪽을 봐 : What happens on the wire when a TLS/LDAP or TLS/HTTP connection is set up?)어떻게 델파이 XE3에서 TIdHTTPServer 및 OpenSSL을 사용하여 동일한 포트에서 SSL 및 비 SSL 트래픽을 지원 할 수 있습니까?
다른 의견을 보내 주셔서 감사합니다. 나는 그것들을 들여다 볼 것이고 만약 내가 결국 여기에 다시 올릴 사람들 중 하나를 구현하게된다. – Andy