2 votes

L'implémentation mise à jour de curl de MacPorts se comporte différemment de la version précédente et de curl macOS.

Je rencontre un problème avec l'implémentation des ports Mac de curl.

mbp2016:~ pgee$ which curl
/opt/local/bin/curl

mbp2016:~ pgee$ curl --version
curl 7.80.0 (x86_64-apple-darwin21.1.0) libcurl/7.80.0 OpenSSL/3.0.0 zlib/1.2.11 zstd/1.5.0 libidn2/2.3.2 libpsl/0.21.1 (+libidn2/2.3.2)
Release-Date: 2021-11-10
Protocols: dict file ftp ftps gopher gophers http https imap imaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS HSTS HTTPS-proxy IDN IPv6 Largefile libz NTLM NTLM_WB PSL SSL TLS-SRP UnixSockets zstd

mbp2016:~ pgee$ curl --head https://www.ahpra.gov.au
curl: (35) error:0A000152:SSL routines::unsafe legacy renegotiation disabled

mbp2016:~ pgee$ /usr/bin/curl --version
curl 7.77.0 (x86_64-apple-darwin21.0) libcurl/7.77.0 (SecureTransport) LibreSSL/2.8.3 zlib/1.2.11 nghttp2/1.42.0
Release-Date: 2021-05-26
Protocols: dict file ftp ftps gopher gophers http https imap imaps ldap ldaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: alt-svc AsynchDNS GSS-API HSTS HTTP2 HTTPS-proxy IPv6 Kerberos Largefile libz MultiSSL NTLM NTLM_WB SPNEGO SSL UnixSockets

mbp2016:~ pgee$ /usr/bin/curl --head https://www.ahpra.gov.au
HTTP/1.1 200 OK
Cache-Control: no-cache, no-store
Pragma: no-cache
Content-Length: 160133
Content-Type: text/html; charset=utf-8
Expires: -1
Set-Cookie: AhpraWeb=1piaikc5vpec3wnhon03ab1b; path=/; secure; HttpOnly; SameSite=None
Content-Security-Policy: frame-ancestors 'self'
X-Frame-Options: SAMEORIGIN
P3P: CP="CAO CURa ADMa PSAa PSDa IVAa IVDa HISa OTPa DELa STP COM NAV INT STA"
Date: Sun, 12 Dec 2021 09:47:21 GMT
Set-Cookie: TS018b815b=0159a15e4f400ce883fd78f837a346d5a62bb71ed32f3cd47fb00b7b3e1515b7af8c96c9498324e287a318da5bbaac588926bd3ce4134eced00319de6fd856439860ec84e7; Path=/

Ainsi - cela montre que la version installée via mac-ports (7.80.0) ne peut pas se connecter à un serveur spécifique (il peut se connecter avec d'autres serveurs). Mais la version de curl installée par le système (7.77.0) se connecte à ce serveur.

J'ai essayé de reconstruire curl de force avec :sudo port upgrade -s -n --force curl mais cela n'a eu aucun effet.

Cette erreur cause un problème pour ma copie de développement d'apache/php et en particulier pour la bibliothèque guzzle. Cela fonctionnait avant la mise à jour - avez-vous des idées pour corriger cela ?

7voto

sfxedit Points 1510

Tel que le montre votre commande MacPorts curl --version, il utilise OpenSSL 3.0.0 pour se connecter aux sites http sécurisés, tandis que le /usr/bin/curl de macOS utilise LibreSSL 2.8.3 pour la même tâche.

L'erreur que vous rencontrez en ne pouvant pas vous connecter à ahpra.gov.au est due à l'utilisation par eux d'un serveur SSL sans l'Extension Indication de Renégociation, ce qui rend la connexion sécurisée vulnérable à une attaque de type homme du milieu. OpenSSL semble avoir choisi d'être particulièrement prudent ici et donc refuse d'établir une connexion sécurisée potentiellement dangereuse. (Le lien fourni par Gordon Davisson en discute sur Github - unsafe legacy renegotiation disabled #16278).

Donc si vous voulez toujours utiliser curl de MacPorts, vous devrez l'utiliser sans OpenSSL. Heureusement, MacPorts propose différents variants de curl n'utilisant pas OpenSSL. Curl de MacPorts est également disponible avec :

  • darwinssl - Permet des connexions sécurisées en utilisant le TLS natif d'Apple OS.
  • gnutls - Permet des connexions sécurisées en utilisant GNU TLS.
  • wolfssl - Permet des connexions sécurisées en utilisant wolfSSL (anciennement CyaSSL).

Vous pouvez donc opter pour l'un de ces variants. La commande MacPorts pour installer un variant différent d'une application est

sudo port install nom-de-l'app +variant

Donc dans votre cas, si vous voulez utiliser la bibliothèque intégrée à macOS au lieu d'OpenSSL, vous devriez désinstaller le curl actuel de MacPorts (sudo port uninstall curl) et installer le variant darwinssl de curl (sudo port install curl +darwinssl).

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X