La vera soluzione è garantire che il server presenti tutti i certificati nella catena e non solo il certificato dell'entità finale (server).
Indirizzare l'amministratore del server a RFC 5246 Sezione 7.4.2 che indica chiaramente che questo messaggio trasmette la catena di certificati del server al client.
Se il tuo amministratore rifiuta / non può farlo per qualche motivo, la tua opzione alternativa è quella di provare a metterti curl
al lavoro con la stretta di mano non corretta.
Secondo un messaggio sulla mailing list di Curl:
Qualcuno può confermare se cURL supporta (o meno) il certificato intermedio?
Sì lo fa. Tutti i certificati ca hanno una catena di certificati che sale alla radice. Il fascio ca che usi con l'arricciatura deve essere composto dai certs per l'intera catena.
/ daniel.haxx.se
Dovresti essere in grado di aggiungere la CA principale e tutti i certificati intermedi a un bundle e puntare curl
ad essa utilizzando l' --cacert <file>
opzione.
Mentre i browser funzionano, è possibile accedere ai certificati CA corretti da lì. Nella scheda certificati (diversa per ciascun browser, ma sono sicuro che lo scoprirai), visualizza la catena di certificati. Fare doppio clic sul CA principale prima Globalsign Root CA - G1 e il Dettagli scheda, fare clic su Copia su file ... . Salva come root.cer
. Fai lo stesso con AlphaSSL CA - SHA256 - G2 e salvalo come issuing.cer
. Unisci i due insieme in un unico file (ad esempio chain.cer
) e usalo come argomento per -cacert
.
Come gentilmente sottolineato da @AB, il certificato mancante può essere trovato anche qui .
I browser funzionano perché memorizzano nella cache certificati CA. Se in passato hai navigato verso un sito Web correttamente configurato, il cui certificato è stato emesso dalla stessa CA del certificato del tuo server, verrà memorizzato nella cache dal browser. Quando successivamente visiti il tuo sito configurato in modo errato, il browser utilizzerà i certificati CA nella sua cache per creare la catena. A te sembra che tutto vada bene, anche se dietro le quinte il server non è configurato correttamente.
Nota che su Windows, IE / Edge e Chrome condividono la stessa cache, mentre Firefox ne utilizza una propria.
Oltre a quanto sopra, IE / Edge e Chrome (in quanto condividono lo stesso stack crittografico) utilizzeranno un'estensione all'interno dei certificati denominata AuthorityInformationAccess . È disponibile un'opzione caIssuer che fornisce un URL da cui è possibile scaricare il certificato CA del certificato dell'entità finale. Pertanto, anche se uno di questi browser non ha memorizzato nella cache i certificati mancanti dalla precedente navigazione, può recuperarlo se necessario. Si noti che Firefox non lo fa, motivo per cui a volte Firefox può mostrare errori di certificato quando IE / Edge e Chrome sembrano funzionare.