Desde 1º de janeiro de 2017, a Apple exige que todos os aplicativos iOS usem o App Transport Security (ATS), que impõe HTTPS em todas as comunicações de rede. Para passar na validação do ATS, seu certificado e servidor web devem atender a requisitos criptográficos específicos.
O Alibaba Cloud CDN e o Server Load Balancer (SLB) já vêm configurados para atender aos requisitos do ATS.
Requisitos do certificado
A tabela a seguir resume os requisitos do ATS para o certificado e a configuração do servidor.
| Requisito | Detalhes |
|---|---|
| Autoridade certificadora (CA) | Use um certificado com validação de organização (OV) ou validação estendida (EV) da GlobalSign. Recomendamos certificados digitais OV ou EV da GlobalSign. |
| Algoritmo de hash | SHA-256 ou superior. Certificados da GlobalSign e da Entrust atendem a esse requisito. |
| Tamanho da chave | RSA de 2048 bits ou superior. Se você selecionar Automatic para geração de CSR, o sistema gerará automaticamente uma chave RSA de 2048 bits. Caso selecione Manual, use 2048 bits ou mais. |
| Protocolo TLS | O TLS 1.2 deve estar ativado no servidor web. Consulte Requisitos de TLS 1.2 do servidor. |
| Suites de cifras | Ative pelo menos uma suite de cifras aceita pelo ATS. Consulte Suites de cifras aceitas. |
Requisitos de TLS 1.2 do servidor
O suporte ao TLS 1.2 depende do software e da versão do servidor web. A tabela abaixo indica a versão mínima necessária para cada tipo de servidor.
|
Servidor |
Versão mínima para TLS 1.2 |
Observações |
|
Apache HTTP Server / NGINX |
OpenSSL 1.0 |
Recomenda-se OpenSSL 1.0.1 ou posterior. |
|
Tomcat |
Tomcat 7 + JDK 7.0 |
|
|
Servidores baseados em JRE |
JDK 1.7 |
|
|
OpenSSL (autônomo) |
OpenSSL 1.0 |
Recomenda-se OpenSSL 1.0.1 ou posterior. |
|
IIS 7.5 |
Qualquer versão |
O TLS 1.2 está desativado por padrão. Consulte Ativar TLS 1.2 no IIS 7.5. |
|
IBM Domino Server |
9.0.1 FP3 |
Recomenda-se IBM Domino 9.0.1 FP5 ou posterior. |
|
IBM HTTP Server |
8,0 |
Recomenda-se IBM HTTP Server 8.5 ou posterior. |
|
WebLogic |
10.3.6 (requer Java 7+) |
O WebLogic 10.3.6 apresenta problemas conhecidos de compatibilidade com SHA-256. Recomenda-se o WebLogic 12 ou posterior. Se for indispensável usar a versão 10.3.6, adicione um proxy HTTPS frontend com Apache ou NGINX ou utilize um balanceador de carga frontend. |
|
WebSphere |
V7.0.0.23, V8.0.0.3 ou V8.5.0.0 |
Consulte Configurar o WebSphere para usar TLS 1.2. |
Exceto no IIS 7.5 e no WebLogic 10.3.6, o TLS 1.2 vem ativado por padrão se a versão do servidor atender aos requisitos mínimos listados acima.
Ativar TLS 1.2 no IIS 7.5
No IIS 7.5, o TLS 1.2 está desativado por padrão. Para ativá-lo:
Baixe e importe o script de registro ATS.
Reinicie o servidor web ou faça logoff para aplicar a alteração.
Para um tutorial passo a passo, consulte Enabling TLS 1.2 on IIS 7.5 for 256-bit cipher strength. Como alternativa, use a ferramenta visual IIS Crypto para configurar suites de cifras e protocolos sem editar o registro manualmente.
Suites de cifras aceitas
O ATS exige que todas as suites de cifras aceitas ofereçam suporte a forward secrecy, mecanismo que impede a descriptografia de tráfego gravado caso a chave privada do servidor seja comprometida posteriormente. Por esse motivo, todas as suites aceitas usam troca de chaves ECDHE.
Ative pelo menos uma das seguintes suites de cifras no servidor web:
TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
Exemplos de configuração
Os exemplos a seguir mostram os atributos relevantes para o ATS no NGINX e no Tomcat. Em ambiente de produção, configure todos os atributos conforme as necessidades do servidor, não apenas os mostrados aqui.
NGINX
As diretivas ssl_ciphers e ssl_protocols definem quais suites de cifras e versões de TLS serão aceitas.
server {
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
}
Tomcat
No elemento <Connector>, os atributos ciphers, SSLProtocol e SSLCipherSuite controlam as suites de cifras e os protocolos.
<Connector port="443" protocol="HTTP/1.1" SSLEnabled="true"
scheme="https" secure="true"
ciphers="TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
SSLProtocol="TLSv1.1+TLSv1.2+TLSv1.3"
SSLCipherSuite="ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4" />
Verifique conformidade com o ATS
Após configurar o servidor, execute o comando abaixo no macOS para verificar se o endpoint passa na validação do ATS:
nscurl --ats-diagnostics --verbose <URL>