OpenSSL TLS 백엔드
OpenSSL(iohOpenSSL)은 sgcWebSockets의 크로스 플랫폼 TLS 전송입니다. 라이브러리가 대상으로 하는 모든 플랫폼에서 동작하고 대부분에서 기본값이며, 어떤 백엔드보다도 가장 넓은 프로토콜 및 암호 커버리지를 제공합니다. TLSOptions.IOHandler를 iohOpenSSL로 설정해 활성화한 다음, OpenSSL 런타임 라이브러리를 애플리케이션과 함께 배포하세요.
OpenSSL(iohOpenSSL)은 sgcWebSockets의 크로스 플랫폼 TLS 전송입니다. 라이브러리가 대상으로 하는 모든 플랫폼에서 동작하고 대부분에서 기본값이며, 어떤 백엔드보다도 가장 넓은 프로토콜 및 암호 커버리지를 제공합니다. TLSOptions.IOHandler를 iohOpenSSL로 설정해 활성화한 다음, OpenSSL 런타임 라이브러리를 애플리케이션과 함께 배포하세요.
Indy 소켓 위에 구현된 크로스 플랫폼 TLS로, sgcWebSockets가 대상으로 하는 모든 플랫폼에서 사용할 수 있습니다.
OpenSSL은 sgcWebSockets가 Indy 소켓 위에 계층화하는 크로스 플랫폼 TLS 구현입니다. Windows, Linux, macOS, iOS, Android에서 사용할 수 있으며 대부분에서 기본 백엔드입니다. 모든 플랫폼에서 동일한 TLS 동작이 필요하거나, OpenSSL만 노출하는 기능에 의존할 때 OpenSSL을 선택하세요.
이 백엔드는 TLS 1.0부터 TLS 1.3까지 커버하며, 어떤 sgcWebSockets 전송보다도 가장 넓은 암호 제품군 선택을 제공합니다. 사용자 지정 CA 루트(RootCertFile)로 비공개 또는 자체 서명 기관을 신뢰하고, 상호 TLS를 위해 클라이언트 인증서를 제시하며, ALPN을 통해 http/1.1 같은 애플리케이션 프로토콜을 광고할 수 있습니다. 네 가지 백엔드 모두 동일한 TLSOptions API를 공유하므로, OpenSSL을 기준으로 작성한 코드는 IOHandler 줄만 바꾸면 네이티브 백엔드로 옮겨집니다.
절충점은 배포입니다. OpenSSL은 외부 의존성이므로 런타임 라이브러리를 애플리케이션과 함께 출하하고 패치 상태를 유지해야 합니다. Windows에서는 libssl-3.dll과 libcrypto-3.dll을, Linux와 Android에서는 일치하는 .so 파일을, Apple 플랫폼에서는 .dylib 파일을 의미합니다. 배포할 라이브러리가 전혀 없는 네이티브 TLS를 원한다면 Windows의 SChannel, 또는 네이티브 Android 및 Apple 백엔드를 살펴보세요.
TLSOptions.IOHandler를 iohOpenSSL로 설정한 다음, OpenSSL 라이브러리를 빌드와 함께 배포하세요.
uses
sgcWebSocket, sgcWebSocket_Types;
// ...
WSClient.TLS := True;
WSClient.TLSOptions.IOHandler := iohOpenSSL;
WSClient.TLSOptions.VerifyCertificate := True;
WSClient.TLSOptions.RootCertFile := ''; // optional custom CA (PEM/DER)
WSClient.TLSOptions.CertFile := ''; // optional client cert for mTLS
WSClient.TLSOptions.Password := '';
WSClient.TLSOptions.ALPNProtocols.Add('http/1.1');
WSClient.Host := 'your.server.com';
WSClient.Port := 443;
WSClient.Active := True;
WSClient->TLS = true;
WSClient->TLSOptions->IOHandler = iohOpenSSL;
WSClient->TLSOptions->VerifyCertificate = true;
WSClient->TLSOptions->RootCertFile = ""; // optional custom CA (PEM/DER)
WSClient->TLSOptions->CertFile = ""; // optional client cert for mTLS
WSClient->TLSOptions->Password = "";
WSClient->TLSOptions->ALPNProtocols->Add("http/1.1");
WSClient->Host = "your.server.com";
WSClient->Port = 443;
WSClient->Active = true;
OpenSSL은 외부 의존성이므로, 런타임 라이브러리가 모든 플랫폼에서 애플리케이션과 함께 따라다닙니다.
실행 파일 옆에 libssl-3.dll과 libcrypto-3.dll을 배포하세요(대상에 맞춰 32비트 또는 64비트 빌드).
일치하는 libssl과 libcrypto .so 파일을 번들한 다음, 애플리케이션이 런타임에 접근할 수 있는 경로에서 로드하세요.
libssl과 libcrypto .dylib 파일을 앱 번들과 함께 출하해 기기에서 OpenSSL 런타임을 사용할 수 있게 하세요.
라이브러리는 사용자가 배포하는 것이므로, 보안 수정이 릴리스되면 업데이트할 책임은 사용자에게 있습니다.
OpenSSL(iohOpenSSL)은 sgcWebSockets의 모든 에디션에 포함됩니다. 전체 내역은 기능 매트릭스를 참고하세요.