1 votes

CGIProxy fonctionnant sur macOS ne parvient pas à se connecter aux sites utilisant SSL

J'essaie d'exécuter un proxy web CGIProxy sur un de mes serveurs domestiques qui fonctionne sous macOS 10.11.6. J'ai configuré le serveur web en utilisant l'utilitaire Server d'Apple.

Dans l'ensemble, cela fonctionne, mais pour certains sites Web, lorsque j'essaie de m'y connecter via HTTPS, l'erreur suivante se produit :

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

Malheureusement, je ne suis pas particulièrement expérimenté en matière de serveurs web ou de Perl, donc je n'ai pas la moindre idée de ce que cela signifie ou de la façon de le résoudre.

À titre expérimental, j'ai mis en place un serveur Ubuntu 14.04 sur une machine virtuelle, configuré apache2, et installé CGIProxy sur celui-ci, et cela fonctionne très bien -- aucune erreur SSL lors de la connexion aux sites problématiques.

Il semble donc que cela ait quelque chose à voir avec le fait que macOS soit une bête un peu différente de Linux, ce qui n'est pas surprenant. J'ai déjà rencontré plusieurs problèmes liés à SSL sur des systèmes macOS dans des circonstances différentes.

Une idée pour corriger ce problème ?

0voto

Jimmy McKellar Points 21

En creusant davantage cette erreur, j'ai découvert qu'elle indique une erreur de poignée de main, probablement due au fait que macOS ne dispose pas d'une version correctement mise à jour d'OpenSSL. Exécution de openssl version imprime OpenSSL 0.9.8zh qui ne prend pas en charge TLS 1.1 ou 1.2, ce qui explique probablement son échec.

La solution était d'utiliser homebrew pour installer une version séparée de perl qui se lie à la copie d'OpenSSL de homebrew. La version actuelle de perl dans homebrew au moment où j'écris ces lignes est 5.24.1, ce qui est plus récent que la version fournie avec macOS et Ubuntu 14.04. Lorsque je l'ai installée et que j'ai essayé de l'utiliser pour exécuter CGIProxy, elle s'est plantée. J'ai donc essayé d'utiliser perl 5.18, ce qui a fonctionné.

En résumé, ce qui suit le corrige :

brew install perl@5.18
brew link --force perl@5.18

Editez nph-proxy.cgi et changez la première ligne shebang de :

#!/usr/bin/perl

A :

#!/usr/local/bin/perl

Effacement de ~/.cpan et ~/perl5 si vous avez déjà exécuté ./nph-proxy init courir ./nph-proxy.cgi init et après avoir terminé, je n'ai eu aucun problème à utiliser CGIProxy pour accéder aux sites Web qui posaient problème auparavant.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X