3 votos

Tlsv1 versión de protocolo de alerta cuando se conecta a través de SSL a OS X Server

¿Cómo puedo volver a habilitar TLS 1.1 y 1.0 en el servidor 5.3 con macOS 10.12.4 en el corto plazo, mientras me evaluar a todos los clientes que no están listos para TLS 1.2?

Si salta a la parte inferior, los intentos de cambio comfiguration archivos han fracasado hasta ahora para restaurar la compatibilidad hacia atrás

SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2

Después de haber actualizado nuestro servidor para macOS 12.4 y el Servidor de la aplicación a la versión 5.3, usando curl conectarse a un macOS servidor https sitio de una máquina Linux dejó de trabajo, la emisión de 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 funcionaba bien antes de la actualización de los macOS servidor. Así que parece que la actualización de apagado una opción de conexión que curl confía. Busqué en google un montón, pero estoy todavía tiene dudas sobre qué es exactamente la causa.

El mismo curlcomando funciona cuando se emite desde otro Mac. El equipo de linux ha

$ 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 que en el cliente de 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 

Por desgracia, no es una opción para tratar de actualizar curlen la máquina Linux.

Algunos de los recursos de reclamación incompatible conjuntos de cifrado para ser la causa, pero después de algunas pruebas, no he sido capaz de encontrar una solución por medio de la --ciphers opción, y además no estoy seguro de cómo encontrar una compatible suite de cifrado.

He tratado de averiguar qué ha cambiado con macOS Servidor 5.3, pero el Apple cambio de registro no me da ninguna pista acerca de él. Así que la pregunta es:

Lo que ha cambiado en macOS 12.4 y/o macOS Servidor 5.3 y cómo puedo volver a configurar mi macOS server para que el curlconexión funciona de nuevo?

Actualización 1:

He temporalmente expuesto el puerto 443 para el público, para que yo pudiera realizar el SSL Laboratorios de pruebas. Los resultados muestran que a mi macOS servidor sólo admite TLS 1.2 y nada más. Para varios clientes simulados, el informe de la prueba Server sent fatal alert: protocol_version - incluyendo, por ejemplo, IE8-10/Win7 y Java7u25.

He tratado de 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í)

el cambio de

SSLProtocol -all +TLSv1.2

en

SSLProtocol -all +TLSv1 +TLSv1.1 +TLSv1.2

o incluso

SSLProtocol All

pero no hacer una diferencia al obtener la URL con curl.

Actualización 2:

El proxy de servicio de registro de error de 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 como si mis intentos para activar TLS v1 no funcionan.

Así que la pregunta es: ¿Cómo puedo reactivar TLS v1 en macOS Servidor Apache?

3voto

Steffen Ullrich Puntos 101

curl 7.19.0 ... OpenSSL/0.9.8 h

Este es un viejo (y no admitidos), la versión de OpenSSL que usted está usando aquí el que no tiene soporte para los protocolos modernos como TLS 1.2 y moderno ECDHE sistemas de cifrado. Son altas las posibilidades de que después de la actualización de su servidor ahora requiere del protocolo y/o cifrado y por lo tanto la conexión con la antigua versión de OpenSSL fallará.

* SSLv3, TLS handshake, Client hello (1):

Esto también podría indicar que su cliente está tratando de usar SSL 3.0, que es generalmente de movilidad hoy en día debido a que es un protocolo inseguro. Usted podría tratar de hacer cumplir a usar TLS 1.0 (que es apoyado por OpenSSL 0.9.8) mediante el uso de curl -1 o curl --tls1 en la esperanza de que el servidor que soporta TLS 1.0 y tiene sistemas de cifrado configurado para ser utilizable por la antigua versión de OpenSSL.

1voto

not2savvy Puntos 1

Configuración de SSLProtocol All y SSLProxyProtocol All en todos los ficheros de configuración aparece en mi pregunta funciona, pero sólo después de reiniciar el servidor - es decir, después de reiniciar macOS (sudo shutdown -r), no sólo en el servidor web (sudo serveradmin stop/start web).

Una verificación por parte de la SSL Laboratorios de prueba del servidor de informes que TLS 1.0, 1.1 y 1.2, están ahora disponibles, mientras que SSL 2 y 3 no son.

Todavía tengo que averiguar cuál de los muchos archivos de configuración es el correcto, o si todos ellos requieren ser cambiados. Voy a actualizar esta respuesta una vez que lo hice. Supongo que tal vez el servicio de proxy es crucial, pero no es controlado por la serveradmin stop/start webcomando.

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