OS X 10.11 CardDAV con certificato autofirmato

0

Il server CardDAV che sto cercando di connettersi utilizza un certificato autofirmato. Purtroppo non posso farci nulla.

Nelle precedenti versioni di OS X, quando si collegava a questo server il sistema chiedeva se voglio connettermi usando questo certificato non sicuro. Potrei accettare e continuare.

Quando si prova la stessa cosa nella versione attuale di OS X, questo non funziona. Contacts.app mostra solo un problema di connessione.

Quando osservo i log in Console, ho trovato questo errore:

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?
    }

Nessun avviso, nessuna richiesta di procedere comunque.

Ora pensavo che avrei potuto scaricare il certificato, aggiungerlo al portachiavi e impostare il trust predefinito su "Fidati sempre".

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

Ottenuto il certificato, l'ho aggiunto al portachiavi, impostato la fiducia e riprovato: peggio: Lo stesso errore ancora e ancora nessuna finestra di conferma.

Ora la mia domanda è: esiste un modo per consentire a Contacts.app di connettersi al mio server o di ripristinare la finestra di dialogo di conferma?

Modifica

Come richiesto, ecco i dettagli della mia connessione 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
    
posta Julian F. Weinert 02.12.2015 - 01:27
fonte

1 risposta

1

Secondo la sezione Miglioramenti della sicurezza delle note di pre-release di OS X 10.11 su sito web per sviluppatori Apple

App Transport Security (ATS)

App Transport Security (ATS) enforces best practices in the secure connections between an app and its back end. ATS prevents accidental disclosure, provides secure default behavior, and is easy to adopt; it is also on by default in OS X v10.11 and iOS 9. You should adopt ATS as soon as possible, regardless of whether you’re creating a new app or updating an existing one.

If you’re developing a new app, you should use HTTPS exclusively. If you have an existing app, you should use HTTPS as much as you can right now, and create a plan for migrating the rest of your app as soon as possible. In addition, your communication through higher-level APIs needs to be encrypted using TLS version 1.2 with forward secrecy. If you try to make a connection that doesn't follow this requirement, an error is thrown. If your app needs to make a request to an insecure domain, you have to specify this domain in your app's Info.plist file.

    
risposta data 02.12.2015 - 16:24
fonte

Leggi altre domande sui tag