SSL / TLS 백엔드

sgcWebSockets는 단일 속성 TLSOptions.IOHandler 뒤에 네 가지 상호 교환 가능한 TLS 전송을 제공합니다. 최대 이식성을 원한다면 OpenSSL을 선택하고, 운영 체제 자체의 TLS 스택을 사용하면서 배포할 OpenSSL 라이브러리가 없는 네이티브 플랫폼 백엔드(Windows SChannel, Android, iOS/macOS)를 선택하세요. 백엔드 전환은 코드 한 줄이면 끝이고, 그 외에는 아무것도 바뀌지 않습니다.

네 가지 TLS 전송, 하나의 속성

모든 백엔드는 동일한 TLSOptions API에 연결됩니다. 플랫폼과 배포 환경에 맞는 것을 고른 다음 TLSOptions.IOHandler를 설정하세요.

백엔드 비교

각 전송의 플랫폼, 배포 풋프린트, TLS 1.3 지원 및 에디션.

백엔드 플랫폼 배포할 라이브러리 TLS 1.3 에디션
OpenSSL Windows, Linux, macOS, iOS, Android OpenSSL (libssl/libcrypto) 모든 에디션
SChannel Windows 없음 (Windows에 내장) (Windows 11/Server 2022+) Professional, Enterprise
Android TLS Android 없음 (OS 사용) Enterprise
Apple TLS iOS, macOS 없음 (OS 사용) (10.14+/iOS 12+) Enterprise

백엔드 선택

각 전송에는 전체 설정, Delphi 및 C++ Builder용 코드, 배포 참고 사항 및 에디션 세부 정보를 담은 전용 페이지가 있습니다.

OpenSSL (iohOpenSSL)

Indy 소켓 위에서 동작하는 크로스 플랫폼 TLS로, sgcWebSockets가 대상으로 하는 모든 플랫폼에서 사용할 수 있으며 대부분에서 기본값입니다. 완전한 TLS 1.0부터 1.3까지, 가장 넓은 암호 커버리지, 사용자 지정 CA, 클라이언트 인증서 및 ALPN을 제공합니다. OpenSSL 런타임 라이브러리를 앱과 함께 배포합니다. 모든 에디션에 포함됩니다.

전체 가이드 읽기 →

SChannel (iohSChannel)

Windows에 내장된 Microsoft의 네이티브 TLS 스택(Secure Channel / SSPI). 라이브러리 배포가 전혀 없으며, 출하하거나 패치할 OpenSSL DLL이 없고, Windows 인증서 저장소를 사용합니다. Windows 전용. Professional 및 Enterprise 에디션에 포함됩니다.

전체 가이드 읽기 →

네이티브 Android TLS (iohAndroidTLS)

JNI를 통해 플랫폼의 SSLEngine을 사용하는 Android 네이티브 TLS. APK에 OpenSSL .so가 없으며, Android 시스템 신뢰 저장소에 대한 검증, TLS 1.3, 그리고 Android 10(API 29) 이상에서의 ALPN을 제공합니다. Enterprise 에디션.

전체 가이드 읽기 →

네이티브 Apple TLS (iohAppleTLS)

iOS 및 macOS용 Apple 네이티브 TLS로, 배포할 OpenSSL .dylib이 없습니다. macOS 10.14+ / iOS 12+에서는 Network.framework(TLS 1.3)를 자동 선택하고, 더 오래된 시스템에서는 Secure Transport(TLS 1.2)로 폴백하며, 시스템 신뢰, SNI, 사용자 지정 CA, 클라이언트 인증서 / mTLS 및 ALPN을 지원합니다. Enterprise 에디션.

전체 가이드 읽기 →

에디션 참고

네이티브 플랫폼 TLS인 Android(iohAndroidTLS)와 Apple(iohAppleTLS)은 Enterprise 에디션이 필요합니다. OpenSSL(iohOpenSSL)은 모든 에디션에 포함되고, SChannel(iohSChannel)은 Professional 및 Enterprise 에디션에 포함됩니다.

한 줄로 전환

네 가지 백엔드 모두 동일한 TLSOptions API를 공유하므로, 서로 간 이동은 속성 하나만 바꾸면 됩니다. 코드의 나머지 부분은 바뀔 필요가 없습니다.

TLS & VerifyCertificate

모든 백엔드에서 동일한 방식으로 TLS를 활성화하고 피어 인증서 검증을 켜고 끕니다.

RootCertFile

비공개 또는 자체 서명 인증 기관을 신뢰하려면 사용자 지정 CA 루트를 가리키게 하세요.

CertFile & Password

상호 TLS(mTLS) 인증을 위해 클라이언트 인증서와 그 비밀번호를 제공합니다.

ALPNProtocols

TLS 핸드셰이크 중에 애플리케이션 프로토콜(예: http/1.1)을 광고합니다.

// Same TLSOptions, only the IOHandler line changes per platform.
WSClient.TLS := True;
WSClient.TLSOptions.IOHandler := iohOpenSSL;   // or iohSChannel / iohAndroidTLS / iohAppleTLS
WSClient.TLSOptions.VerifyCertificate := True;
WSClient.TLSOptions.RootCertFile := '';
WSClient.TLSOptions.CertFile := '';
WSClient.TLSOptions.Password := '';
WSClient.TLSOptions.ALPNProtocols.Add('http/1.1');
WSClient.Active := True;
// Same TLSOptions, only the IOHandler line changes per platform.
WSClient->TLS = true;
WSClient->TLSOptions->IOHandler = iohOpenSSL;   // or iohSChannel / iohAndroidTLS / iohAppleTLS
WSClient->TLSOptions->VerifyCertificate = true;
WSClient->TLSOptions->RootCertFile = "";
WSClient->TLSOptions->CertFile = "";
WSClient->TLSOptions->Password = "";
WSClient->TLSOptions->ALPNProtocols->Add("http/1.1");
WSClient->Active = true;

네이티브 TLS, 배포할 OpenSSL 제로

무료 체험판을 다운로드해 코드 한 줄로 TLS 백엔드를 전환하세요.