¿Cómo puedo volver a habilitar TLS 1.1 y 1.0 en el servidor 5.3 con macOS 10.12.4 a corto plazo mientras evalúo a todos los clientes que no están listos para TLS 1.2?
Si salta al final, los intentos de cambiar los archivos de configuración han fallado hasta ahora para restaurar la compatibilidad hacia atrás
SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2
Después de haber actualizado nuestro servidor a macOS 12.4 y la aplicación Servidor a la versión 5.3, usando curl
para conectarse a un servidor del servidor macOS https desde una máquina Linux dejó de funcionar, emitiendo los siguientes mensajes en el lado del cliente:
$ curl -v --insecure -o "output.file" https://myserver.domain/path/page.php
* About to connect() to myserver.domain port 443 (#0)
* Trying 192.168.xxx.xxx... connected
* Connected to myserver.domain (192.168.xxx.xxx) port 443 (#0)
* successfully set certificate verify locations:
* CAfile: none
CApath: /etc/ssl/certs/
* SSLv3, TLS handshake, Client hello (1):
} [data not shown]
* error:1407742E:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert protocol version
* Closing connection #0
La conexión funcionó bien antes de la actualización del servidor macOS. Así que parece que la actualización desactivó una opción de conexión en la que se basa curl
. Busqué mucho en Google, pero todavía no estoy seguro de cuál es exactamente la causa.
El mismo comando curl
funciona cuando se emite desde otra Mac. La máquina linux tiene
$ curl --version
curl 7.19.0 (x86_64-suse-linux-gnu) libcurl/7.19.0 OpenSSL/0.9.8h zlib/1.2.3 libidn/1.10
Protocols: tftp ftp telnet dict ldap http file https ftps
Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz
mientras esté en el cliente Mac
$ curl --version
curl 7.51.0 (x86_64-apple-darwin16.0) libcurl/7.51.0 SecureTransport zlib/1.2.8
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz UnixSockets
Lamentablemente, no es una opción intentar actualizar curl
en la máquina con Linux.
Algunos recursos afirman que las suites de cifrado incompatibles son la causa, pero después de algunas pruebas, no he podido encontrar una solución con la opción --ciphers
, y tampoco estoy seguro de cómo encontrar un conjunto de cifrado compatible.
He intentado averiguar qué ha cambiado con macOS Server 5.3, pero el registro de cambios de Apple no me da ninguna pista al respecto. Así que la pregunta es:
¿Qué ha cambiado en macOS 12.4 y / o macOS Server 5.3 y cómo puedo volver a configurar mi servidor macOS para que la conexión curl
funcione de nuevo?
Actualización 1:
He expuesto temporalmente el puerto 443 al público, por lo que podría realizar las pruebas de SSL Labs . Los resultados muestran que mi servidor macOS solo admite TLS 1.2 y nada más. Para varios clientes simulados, el informe de prueba Server sent fatal alert: protocol_version
, incluidos, por ejemplo, IE8-10 / Win7 y Java7u25.
He intentado reactivar TLS 1 y 1.1 en
-
/library/server/web/config/apache2/sites/0000_127.0.0.1_34543_myserver.domain.conf
-
/library/server/web/config/apache2/httpd.conf
-
/library/server/web/config/apache2/httpd_server_app.conf
-
/library/server/web/config/proxy/apache_serviceproxy.conf
(varias instancias aquí)
cambiando
SSLProtocol -all +TLSv1.2
en
SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2
o incluso
SSLProtocol All
pero no hizo una diferencia al obtener la URL con curl
.
Actualización 2:
El registro de errores del proxy de servicio muestra
[datetime] [ssl:info] [pid n] [client x.x.x.x:38805] AH02008: SSL library error 1 in handshake (server myserver.domain:443)
[datetime] [ssl:info] [pid n] SSL Library Error: error:1408A10B:SSL routines:SSL3_GET_CLIENT_HELLO:wrong version number
[datetime] [ssl:info] [pid n] [client x.x.x.x:38805] AH01998: Connection closed to child 11 with abortive shutdown (server myserver.domain:443)
Para mí, parece que mis intentos de activar TLS v1 no funcionan.
Entonces, la pregunta es: ¿Cómo puedo reactivar TLS v1 en el servidor Apache de macOS?