Backend TLS nativo da Apple

O TLS nativo da Apple (iohAppleTLS) é o transporte TLS do iOS e macOS para o sgcWebSockets, sem nenhum .dylib do OpenSSL para implantar. Ele seleciona automaticamente a melhor API do sistema para o dispositivo, então você obtém TLS 1.3 em sistemas modernos sem alterar nenhum código. Habilite-o definindo TLSOptions.IOHandler como iohAppleTLS.

← Todos os backends TLS

TLS nativo da Apple (iohAppleTLS)

TLS nativo da Apple para iOS e macOS, sem nenhum .dylib do OpenSSL para implantar.

O TLS nativo da Apple permite que os seus aplicativos iOS e macOS usem o próprio TLS do sistema operacional, então não há nenhum .dylib do OpenSSL para empacotar, combinar de versão ou atualizar. A Apple mantém a pilha TLS, o que mantém o seu aplicativo alinhado com a política de segurança da plataforma e remove uma dependência de terceiros do seu lançamento.

O backend seleciona automaticamente a melhor API do sistema para cada dispositivo, tudo por trás da única configuração iohAppleTLS. No macOS 10.14+ e iOS 12+ ele usa o Network.framework, que traz o TLS 1.3. Em sistemas mais antigos, ele recorre ao Secure Transport, que chega no máximo ao TLS 1.2. Você não cria ramificações por versão do sistema operacional, o backend escolhe o caminho certo e o seu código permanece o mesmo.

É um cliente TLS completo, não uma versão reduzida. Ele usa o repositório de confiança do sistema, realiza SNI e verificação de nome de host, e expõe um callback OnAppleTLSVerifyPeer para validação personalizada. Você pode confiar em uma autoridade privada com uma raiz de CA personalizada (RootCertFile), apresentar um certificado de cliente para TLS mútuo (CertFile + Password) e anunciar protocolos de aplicação como http/1.1 por meio de ALPN. Escolha este backend para aplicativos da App Store que querem TLS 1.3 mantido pelo sistema operacional e nenhuma criptografia de terceiros para gerenciar.

Habilitar o TLS nativo da Apple

Defina TLSOptions.IOHandler como iohAppleTLS e use as mesmas TLSOptions de qualquer outro backend.

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;

Sem .dylib do OpenSSL

A pilha TLS vem com o sistema operacional, e o backend escolhe a API certa por dispositivo.

Network.framework

No macOS 10.14+ e iOS 12+ o backend usa o Network.framework, que traz o TLS 1.3.

Fallback do Secure Transport

Em sistemas mais antigos, ele recorre ao Secure Transport (TLS 1.2), automaticamente e por trás da mesma configuração.

Confiança do sistema & SNI

Ele usa o repositório de confiança do sistema com SNI e verificação de nome de host, além do OnAppleTLSVerifyPeer para verificações personalizadas.

CA personalizada & mTLS

Confie em uma CA privada com RootCertFile, apresente um certificado de cliente com CertFile + Password e anuncie protocolos ALPN.

Observação sobre edições

O TLS nativo da Apple (iohAppleTLS) requer a edição Enterprise do sgcWebSockets. Consulte a matriz de recursos para o detalhamento completo.

TLS 1.3 nativo da Apple, zero OpenSSL

Baixe a versão de avaliação gratuita e envie aplicativos iOS e macOS sem nenhum .dylib do OpenSSL para implantar.