El servidor CardDAV al que estoy intentando conectar usa un certificado autofirmado. Lamentablemente no puedo hacer nada al respecto.
En versiones anteriores de OS X, al conectarse a este servidor, el sistema me preguntó si quería conectarme utilizando este certificado inseguro. Podría aceptar y continuar.
Al intentar lo mismo en la versión actual de OS X, esto no funciona. Contacts.app solo muestra un problema de conexión.
Al mirar los registros en la Consola, podría 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 hay que solicitar el procedimiento de todos modos.
Ahora pensé que podría descargar el certificado, agregarlo al llavero y establecer la confianza predeterminada en "Confiar siempre".
echo -n | openssl s_client -connect host:port | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > carddav.cer
Obtuvo el certificado, lo agregó al llavero, configuró la confianza y lo intentó de nuevo - bummer: El mismo error otra vez y todavía no aparece el diálogo de confirmación.
Ahora mi pregunta es: ¿hay alguna manera de permitir que Contacts.app se conecte a mi servidor o que vuelva a aparecer el diálogo de confirmación?
EDIT
Según lo 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