CGIProxy em execução no macOS não consegue se conectar a sites usando SSL

1

Estou tentando executar um proxy da Web CGIProxy em um dos meus servidores domésticos executando o macOS 10.11.6. Eu configurei o servidor da web usando o utilitário do servidor da Apple.

Em geral, funciona, mas há alguns sites que, quando tento conectar-me a eles via HTTPS, falham com o seguinte erro:

Net::SSLeay::read error: SSL_read 8284: 1 - error:14077410:lib(20):func(119):reason(1040)

Infelizmente, não sou particularmente experiente com servidores Web ou Perl, por isso não tenho ideia do que isso significa ou como corrigi-lo.

Como experiência, configurei um servidor Ubuntu 14.04 em uma máquina virtual, configurei o apache2 e instalei o CGIProxy nele, e ele funciona muito bem - não há erros SSL ao se conectar aos sites problemáticos.

Então parece que isso tem algo a ver com o macOS sendo um pouco diferente do que o Linux, o que não é surpreendente. Eu encontrei vários problemas relacionados ao SSL com sistemas macOS antes em diferentes circunstâncias.

Alguma ideia de como corrigir este problema?

    
por GuyGizmo 31.03.2017 / 22:16

1 resposta

0

Então, investigando mais esse erro, descobri que ele indica um erro de handshake, provavelmente devido ao fato de o macOS não ter uma versão adequadamente atualizada do OpenSSL. A execução de openssl version imprime OpenSSL 0.9.8zh , o que não é compatível com o TLS 1.1 ou 1.2, o que provavelmente está causando falhas.

A solução foi usar o homebrew para instalar uma versão separada do perl que liga a cópia do OpenSSL feita pelo homebrew. A versão atual do perl no homebrew, a partir da minha escrita, é a 5.24.1, que é mais recente que a versão fornecida com o macOS abd Ubuntu 14.04. Quando eu instalei e tentei usá-lo para executar o CGIProxy, ele caiu. Então eu tentei perl 5.18, o que fez o truque.

Em resumo, o seguinte corrige:

brew install [email protected]
brew link --force [email protected]

Edite nph-proxy.cgi e altere a primeira linha do shebang de:

#!/usr/bin/perl

Para:

#!/usr/local/bin/perl

Limpo ~ / .cpan e ~ / perl5 se você já executou ./nph-proxy init , execute ./nph-proxy.cgi init novamente e, depois que terminar, não tive problemas em usar o CGIProxy para acessar os sites que eram problemáticos antes.

    
por 01.04.2017 / 07:12