1 votos

OS X 10.11 CardDAV con certificado autofirmado

El servidor CardDAV al que intento conectarme utiliza un certificado autofirmado. Lamentablemente no puedo hacer nada al respecto.

En versiones anteriores de OS X, al conectarme a este servidor el sistema me preguntaba si quería conectarme usando este certificado inseguro. Podía aceptar y continuar.

Al intentar lo mismo en la versión actual de OS X, esto no funciona. La aplicación Contacts.app sólo muestra un problema de conexión.

Al mirar los registros en la consola, pude encontrar este error:

02/12/15 00:55:39,637 Contacts[39186]: [CardDAVPlugin-ERROR] -getPrincipalInfo:[_controller discoverServer https://user@host:port(null)] 
    Error Domain=NSURLErrorDomain
    Code=-1200
    "An SSL error has occurred and a secure connection to the server cannot be made."
    UserInfo={
        _kCFStreamErrorCodeKey=-9801,
        NSLocalizedRecoverySuggestion=Would you like to connect to the server anyway?
    }

No hay alerta, no se pide que se proceda de todos modos.

Ahora pensé que podría descargar el certificado, añadirlo al llavero y establecer la confianza por defecto en "Siempre confiar".

echo -n | openssl s_client -connect host:port | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > carddav.cer

Conseguí el certificado, lo añadí al llavero, establecí la confianza y lo intenté de nuevo: El mismo error de nuevo y todavía no hay diálogo de confirmación.

Ahora mi pregunta es: ¿hay alguna forma de permitir que Contacts.app se conecte a mi servidor o de recuperar el diálogo de confirmación?

EDITAR

Como se ha solicitado, aquí están los detalles de mi conexión SSL:

CONNECTED(00000003)
depth=0 CN = , O = , OU = , ST = , C = , L = , emailAddress = 
verify error:num=18:self signed certificate
verify return:1
depth=0 CN = , O = , OU = , ST = , C = , L = , emailAddress = 
verify return:1
---
Certificate chain
 0 s:/CN=/O=/OU=/ST=/C=/L=/emailAddress=
   i:/CN=/O=/OU=/ST=/C=/L=/emailAddress=
---
Server certificate
-----BEGIN CERTIFICATE-----
-----END CERTIFICATE-----
subject=/CN=/O=/OU=/ST=/C=/L=/emailAddress=
issuer=/CN=/O=/OU=/ST=/C=/L=/emailAddress=
---
No client certificate CA names sent
---
SSL handshake has read 1198 bytes and written 658 bytes
---
New, TLSv1/SSLv3, Cipher is AES256-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : SSLv3
    Cipher    : AES256-SHA
    Session-ID: 
    Session-ID-ctx: 
    Master-Key: 
    Key-Arg   : None
    PSK identity: None
    PSK identity hint: None
    SRP username: None
    Start Time: 1449069604
    Timeout   : 300 (sec)
    Verify return code: 18 (self signed certificate)
---
DONE

1voto

Ondratek125 Puntos 1

Según la sección de mejoras de seguridad de las notas de prelanzamiento de OS X 10.11 en Sitio web para desarrolladores de Apple

App Transport Security (ATS)

App Transport Security (ATS) aplica las mejores prácticas en las conexiones seguras entre una aplicación y su back-end. ATS evita la divulgación accidental, proporciona un comportamiento seguro por defecto y es fácil de adoptar; además, está activado por defecto en OS X v10.11 e iOS 9. Debería adoptar ATS lo antes posible, independientemente de si está creando una nueva aplicación o actualizando una existente.

Si está desarrollando una nueva aplicación, debería utilizar exclusivamente HTTPS. Si tienes una aplicación existente, deberías usar HTTPS tanto como puedas ahora mismo, y crear un plan para migrar el resto de tu aplicación tan pronto como sea posible. Además, su comunicación a través de las APIs de nivel superior necesita ser encriptada usando TLS versión 1.2 con forward secrecy. Si intentas realizar una conexión que no cumpla con este requisito, se producirá un error. Si tu aplicación necesita hacer una petición a un dominio inseguro, tienes que especificar este dominio en el archivo Info.plist de tu aplicación.

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