네이티브 Apple TLS 백엔드

네이티브 Apple TLS(iohAppleTLS)는 배포할 OpenSSL .dylib 없이 동작하는 sgcWebSockets의 iOS 및 macOS TLS 전송입니다. 기기에 가장 적합한 시스템 API를 자동 선택하므로, 코드를 바꾸지 않고도 최신 시스템에서 TLS 1.3을 얻습니다. TLSOptions.IOHandler를 iohAppleTLS로 설정해 활성화하세요.

← 모든 TLS 백엔드

네이티브 Apple TLS (iohAppleTLS)

iOS 및 macOS용 Apple 네이티브 TLS로, 배포할 OpenSSL .dylib이 없습니다.

네이티브 Apple TLS는 iOS 및 macOS 앱이 운영 체제 자체의 TLS를 사용하게 해주므로, 번들하거나 버전을 맞추거나 패치할 OpenSSL .dylib이 없습니다. Apple이 TLS 스택을 유지·관리하므로, 앱이 플랫폼의 보안 정책과 정렬된 상태로 유지되고 릴리스에서 서드파티 의존성이 제거됩니다.

이 백엔드는 단일 iohAppleTLS 설정 뒤에서 기기마다 가장 적합한 시스템 API를 자동 선택합니다. macOS 10.14+ 및 iOS 12+에서는 TLS 1.3을 가져오는 Network.framework를 사용합니다. 더 오래된 시스템에서는 TLS 1.2가 최대인 Secure Transport로 폴백합니다. OS 버전에 따라 분기할 필요가 없으며, 백엔드가 올바른 경로를 선택하고 코드는 그대로 유지됩니다.

이것은 축소판이 아니라 완전한 TLS 클라이언트입니다. 시스템 신뢰 저장소를 사용하고, SNI 및 호스트명 검증을 수행하며, 사용자 지정 검증을 위한 OnAppleTLSVerifyPeer 콜백을 노출합니다. 사용자 지정 CA 루트(RootCertFile)로 비공개 기관을 신뢰하고, 상호 TLS를 위해 클라이언트 인증서(CertFile + Password)를 제시하며, ALPN을 통해 http/1.1 같은 애플리케이션 프로토콜을 광고할 수 있습니다. OS가 유지·관리하는 TLS 1.3과 관리할 서드파티 암호가 없는 것을 원하는 App Store 앱에는 이 백엔드를 선택하세요.

네이티브 Apple TLS 활성화

TLSOptions.IOHandler를 iohAppleTLS로 설정한 다음, 다른 백엔드와 동일한 TLSOptions를 사용하세요.

WSClient.TLS := True;
WSClient.TLSOptions.IOHandler := iohAppleTLS;
WSClient.TLSOptions.ALPNProtocols.Add('http/1.1');
WSClient.TLSOptions.RootCertFile := '';   // optional custom CA (PEM/DER)
WSClient.TLSOptions.CertFile := '';       // optional client cert (PKCS#12) for mTLS
WSClient.TLSOptions.Password := '';       // client cert password
WSClient.TLSOptions.VerifyCertificate := True;
WSClient.OnAppleTLSVerifyPeer := DoVerifyPeer;  // optional custom validation
WSClient.Host := 'your.server.com';
WSClient.Port := 443;
WSClient.Active := True;
WSClient->TLS = true;
WSClient->TLSOptions->IOHandler = iohAppleTLS;
WSClient->TLSOptions->ALPNProtocols->Add("http/1.1");
WSClient->TLSOptions->RootCertFile = "";   // optional custom CA (PEM/DER)
WSClient->TLSOptions->CertFile = "";       // optional client cert (PKCS#12) for mTLS
WSClient->TLSOptions->Password = "";       // client cert password
WSClient->TLSOptions->VerifyCertificate = true;
WSClient->OnAppleTLSVerifyPeer = DoVerifyPeer;  // optional custom validation
WSClient->Host = "your.server.com";
WSClient->Port = 443;
WSClient->Active = true;

OpenSSL .dylib 없음

TLS 스택은 운영 체제와 함께 출하되고, 백엔드는 기기마다 올바른 API를 선택합니다.

Network.framework

macOS 10.14+ 및 iOS 12+에서 백엔드는 TLS 1.3을 가져오는 Network.framework를 사용합니다.

Secure Transport 폴백

더 오래된 시스템에서는 동일한 설정 뒤에서 자동으로 Secure Transport(TLS 1.2)로 폴백합니다.

시스템 신뢰 & SNI

SNI 및 호스트명 검증과 함께 시스템 신뢰 저장소를 사용하고, 사용자 지정 검사를 위한 OnAppleTLSVerifyPeer를 제공합니다.

사용자 지정 CA & mTLS

RootCertFile로 비공개 CA를 신뢰하고, CertFile + Password로 클라이언트 인증서를 제시하며, ALPN 프로토콜을 광고하세요.

에디션 참고

네이티브 Apple TLS(iohAppleTLS)는 sgcWebSockets의 Enterprise 에디션이 필요합니다. 전체 내역은 기능 매트릭스를 참고하세요.

네이티브 Apple TLS 1.3, OpenSSL 제로

무료 체험판을 다운로드해 배포할 OpenSSL .dylib 없이 iOS 및 macOS 앱을 출하하세요.