2 votos

La implementación actualizada de curl de MacPorts se comporta de manera diferente a la versión anterior y a curl de MacOS

Tengo un problema con la implementación de curl en los puertos de Mac.

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=/

Así que - esto muestra que la versión instalada de mac-ports (7.80.0) no es capaz de conectarse a un servidor específico (puede conectarse con otros servidores). Pero la versión de curl instalada en el sistema (7.77.0) sí se conecta a ese servidor.

Intenté forzar la reconstrucción de curl con : sudo port upgrade -s -n --force curl pero eso no tuvo ningún efecto.

Este error provoca un problema en mi copia de desarrollo de apache/php y, en particular, en la biblioteca guzzle. Esto funcionaba antes de la actualización - ¿alguna idea de cómo solucionarlo?

7voto

sfxedit Puntos 99

Como su MacPort curl --version utiliza OpenSSL 3.0.0 para conectarse a sitios http seguros, mientras que el comando MacOS /usr/bin/curl utiliza LibreSSL 2.8.3 para lo mismo.

El error que está recibiendo por no poder conectarse a ahpra.gov.au se debe a que utilizan un servidor SSL sin Extensión de la indicación de renegociación lo que hace que la conexión segura sea vulnerable a un ataque man-in-the-middle. OpenSSL parece haber optado por ser muy cauteloso en este caso, y por lo tanto se niega a establecer una conexión segura potencialmente insegura. (El enlace proporcionado por Gordon Davisson discute esto en Github - renegociación insegura del legado deshabilitada #16278 ).

Así que si todavía quieres usar el curl de MacPorts, tendrás que usarlo sin OpenSSL. Afortunadamente, Macports ofrece diferentes variantes de rizo que no utilizan OpenSSL. Macports curl está disponible con:

  • darwinssl - Permitir conexiones seguras utilizando el TLS nativo de Apple OS.
  • gnutls - Permitir conexiones seguras utilizando GNU TLS.
  • wolfssl - Permitir conexiones seguras utilizando wolfSSL (antes CyaSSL).

Por tanto, puede optar por una de estas variantes. El comando de MacPorts para instalar una variante diferente de una aplicación es

sudo port install nombre-de-la-app + variante

Así que en tu caso, si quieres usar la biblioteca integrada en MacOS en lugar de OpenSSL, debes desinstalar el curl actual de MacPorts ( sudo port uninstall curl ) e instalar la variante de curl darwinssl ( sudo port install curl +darwinssl ).

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X