Ho problemi a configurare SSL su un server Debian 6.0 a 32 bit. Sono relativamente nuovo con SSL, quindi per favore abbi pazienza. Includo quante più informazioni possibile.
Nota: il vero nome di dominio è stato modificato per proteggere l'identità e l'integrità del server.
Configurazione
Il server è in esecuzione utilizzando nginx. È configurato come segue:
ssl_certificate /usr/local/nginx/priv/mysite.ca.chained.crt;
ssl_certificate_key /usr/local/nginx/priv/mysite.ca.key;
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers HIGH:!aNULL:!MD5;
ssl_verify_depth 2;
Ho incatenato il mio certificato utilizzando il metodo descritto qui
cat mysite.ca.crt bundle.crt > mysite.ca.chained.crt
dov'è mysite.ca.crt
il certificato che mi è stato fornito dall'autorità di firma e il bundle.crt
certificato CA mi è stato inviato anche dalla mia autorità di firma. Il problema è che non ho acquistato il certificato SSL direttamente da GlobalSign, ma tramite il mio provider di hosting, Singlehop.
Test
Il certificato viene convalidato correttamente su Safari e Chrome, ma non su Firefox. La ricerca iniziale ha rivelato che potrebbe essere un problema con la CA.
Ho esplorato la risposta a una domanda simile , ma non sono riuscito a trovare una soluzione, poiché non capisco bene quale sia lo scopo di ciascun certificato.
Ho usato s_client di openssl per testare la connessione e ho ricevuto un output che sembra indicare lo stesso problema della domanda simile . L'errore è il seguente:
depth=0 /OU=Domain Control Validated/CN=*.mysite.ca
verify error:num=20:unable to get local issuer certificate
verify return:1
depth=0 /OU=Domain Control Validated/CN=*.mysite.ca
verify error:num=27:certificate not trusted
verify return:1
Un dettaglio completo della risposta di openssl (con certificati e informazioni non necessarie troncate) può essere trovato qui .
Vedo anche l'avviso:
No client certificate CA names sent
È possibile che questo sia il problema? Come posso assicurarmi che nginx invii questi nomi CA?
Tentativi di risolvere il problema
Ho tentato di risolvere il problema scaricando la CA radice direttamente da GlobalSign, ma ho ricevuto lo stesso errore. Ho aggiornato le CA di root sul mio server Debian usando il update-ca-certificates
comando, ma non è cambiato nulla. Ciò è probabile perché la CA inviata dal mio provider era corretta, quindi il certificato è stato concatenato due volte, il che non aiuta.
0 s:/OU=Domain Control Validated/CN=*.mysite.ca
i:/C=BE/O=GlobalSign nv-sa/CN=AlphaSSL CA - SHA256 - G2
1 s:/O=AlphaSSL/CN=AlphaSSL CA - G2
i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
2 s:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
i:/C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA
Prossimi passi
Per favore fatemi sapere se c'è qualcosa che posso provare, o se ho semplicemente configurato tutto in modo errato.
AlphaSSL CA - SHA256 - G2
. Tuttavia, la tua catena fornisce intermedioAlphaSSL CA - G2
. Credo che sia necessario eliminare il certificato intermedio corrente (AlphaSSL CA - G2
) e sostituirlo con quello con impronta digitaleae:bf:32:c3:c8:32:c7:d7...
(AlphaSSL CA - SHA256 - G2
). Inoltre, non è necessario inviareGlobalSign Root CA
. Il cliente deve radicare la sua fiducia nel proprio (o nell'intermedio).