HTTPS não funciona com o Safari

12

Eu tenho uma instância do EC2 com o Apache como servidor da web (e o Wildfly como servidor de aplicativos, embora eu não tenha certeza de que tenha algo a ver com esse problema). Na frente do EC2, tenho um balanceador de carga que finaliza o HTTPS e aplica o certificado SSL.

O HTTP e o HTTPS funcionam bem no Chrome, mas infelizmente não no Safari. Acessar o link funciona bem, mas acessar o link erro

"Safari can't open the page. The error is "The operation couldn't be completed. Protocol error" (NSPOSIXErrorDomain:100)"

Eu olhei em / etc / httpd / logs / error_log e / etc / httpd / logs / access_log e também no console do Safari sem encontrar nenhuma dica para resolver o problema. E é sobre o quanto meu conhecimento vai :-( Qualquer dica de como rastrear esse problema seria muito apreciado.

    
por jola 25.10.2018 / 22:04

2 respostas

16
O

curl (se compilado com suporte a HTTP / 2) exibe o mesmo problema, mas mostra o motivo:

http2 error: Invalid HTTP header field was received: frame type: 1, stream: 1, name: [upgrade], value: [h2,h2c]

Parece que seu servidor está oferecendo uma atualização para HTTP / 2, embora a conexão já seja feita com HTTP / 2 - o que não faz sentido. Não só isso, é explicitamente proibido. De RFC 7540 seção 8.1.2.2 :

An endpoint MUST NOT generate an HTTP/2 message containing connection-specific header fields; any message containing connection-specific header fields MUST be treated as malformed (Section 8.1.2.6).... connection- specific header fields, such as Keep-Alive, Proxy-Connection, Transfer-Encoding, and Upgrade

Parece-me um bug, já que o Apache não deve enviar este cabeçalho com HTTP / 2.

Meu palpite é que você tem uma configuração como essa

Protocols h2 h2c http/1.1

Dado que os navegadores não suportam HTTP / 2 sem TLS e que não é necessário nenhum cabeçalho de Upgrade com HTTP / 2 através de TLS, recomendo que você substitua esta configuração por

Protocols h2 http/1.1

Isso desabilita o suporte para o desnecessário HTTP / 2 sem TLS, mas deve se livrar do cabeçalho Upgrade desta forma, já que isso é necessário apenas para a atualização do HTTP simples para o HTTP / 2 simples.

EDIT: de acordo com o comentário do OP mudar a configuração Protocols não ajudou. Foi necessário trabalhar explicitamente com esse comportamento (ou seja, bug) de mod_http2 , excluindo o cabeçalho Upgrade :

Header unset Upgrade
    
por 25.10.2018 / 23:29
3

Acho que isso é um problema do Safari, e não um problema da AWS / SSL. A busca por esse erro gera muitos, muitos resultados no Google.

Tudo faz check-out no website de acordo com o teste SSL Shopper e Teste de laboratórios SSL .

Eu encontrei esta possível solução para o problema.

The solution was to go into Safari Preferences, under Privacy and list all Details. This provided a log of all sites where cookies, etc had been used. I found the Weather Network domain page and cleared all content from it. I was then able to reload the Weather Network page with no issues. I assume this would work for other similar singular sites.

Há também este que pode ser feito com o Apache.

    
por 25.10.2018 / 22:14