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