Come procedere per un rinnovo del certificato SSL

7

Ho ottenuto un certificato SSL da GoDaddy ed è ora di rinnovare. Ho finito con un singolo file "keystore", che ho dato al mio webserver (Jetty). Questo è il processo che ho seguito per generare il file keystore originale, che arriva al mio ultimo punto di confusione:

Per prima cosa ho generato il mio file keystore:

keytool -keystore keystore -alias myalias -genkey -keyalg RSA -keysize 2048

Quindi ho generato la richiesta di firma del certificato (CSR):

keytool -certreq -alias myalias -keystore keystore -file myrequest.csr

Ho inviato il file myrequest.csr a GoDaddy. Hanno risposto con due file:

example.com.crt
gd_bundle.crt

Ho quindi eseguito questo passaggio, che sembra importare una parte del certificato di GoDaddy nel mio file di archivio chiavi, ma non esattamente sicuro di come funzioni:

keytool -import -trustcacerts -alias myalias -keystore keystore -file gd_bundle.crt

Passaggio finale, simile al precedente, che inserisce parte del certificato di dominio nel file keystore:

keytool -keystore keystore -import -alias myalias -file example.com.crt -trustcacerts

Ora fornisco il file keystore alla mia istanza di Jetty e tutto funziona correttamente.

Con il rinnovo, so che devo inviare a GoDaddy un altro CSR. Ma comincio completamente da zero? O dovevo conservare il file del keystore originale nel primo passaggio e procedere da lì?

Non ho conservato una copia del file originale del keystore, l'ho modificato tramite i passaggi sopra elencati. Quindi se devo usarlo per un rinnovo, non sono sicuro di essermi messo nei guai qui.

Ecco il documento di Jetty per questo che ho utilizzato durante la creazione del keystore originale: link

    
posta roger 12.01.2014 - 00:24
fonte

2 risposte

11

I certificati digitali utilizzati per SSL / TLS hanno più componenti. Sebbene ci siano molti dettagli che potremmo esaminare, tutto ciò di cui abbiamo veramente bisogno qui è una panoramica di alto livello, ma ogni pezzo è importante per capire cosa dovresti fare e perché.

Quando hai iniziato il processo per ottenere il tuo certificato, hai prima emesso il comando,

keytool -keystore keystore -alias myalias -genkey -keyalg RSA -keysize 2048

Hai descritto questo come "creare il tuo keystore", che è accurato, ma ha fatto qualcosa di molto più importante: ha generato la tua coppia di chiavi privata / pubblica. In questo caso, il nuovo keystore conteneva una coppia di chiavi che utilizzava l'algoritmo RSA e 2048 bit di entropia (un modo ingegnoso per dire quanto è strong la chiave, o quanto tempo ci vuole per rompere rispetto ad altre chiavi). Questo è importante perché la coppia di chiavi è il modo in cui dimostrerai all'autorità di certificazione (CA) che la tua prossima richiesta è un rinnovo, proviene davvero da te e riguarda lo stesso certificato.

Quando hai generato la tua richiesta di certificato,

keytool -certreq -alias myalias -keystore keystore -file myrequest.csr

hai creato un file che conteneva le informazioni del tuo sito web (foo.com), insieme a un sacco di altre cose, inclusa la tua chiave pubblica. Tutto è stato codificato in un formato noto e inviato alla CA. La CA ha generato il tuo certificato utilizzando la tua chiave pubblica e la sua chiave privata, che è il modo in cui un browser Web casuale può utilizzare questo per sapere che si trova sul tuo sito web e che è sicuro inviare dati. Il tuo certificato viene convalidato dalla tua chiave privata, che hai solo tu, e dalla chiave pubblica della CA, che funziona solo se corrisponde alla chiave privata che ha firmato il certificato.

Quindi, in che modo tutto questo si traduce nel raggiungimento del tuo obiettivo di rinnovare il tuo certificato?

La risposta breve è che non si rinnova, perché un rinnovo non è in realtà un rinnovo.

Un "rinnovo" è solo un modo elegante per dire che stai richiedendo un nuovo certificato, con una nuova data di scadenza, usando la stessa chiave privata del vecchio certificato. Se si utilizza lo stesso comando di prima (con l'opzione -certreq), verrà creata una nuova richiesta di certificato utilizzando la coppia di chiavi esistente. Mandalo a GoDaddy (o qualsiasi altra CA) e dovrebbero essere in grado di elaborare la tua richiesta senza problemi.

Quando ti inviano il certificato, invia il comando di importazione e sei a posto:

keytool -keystore keystore -import -alias myalias -file example.com.crt -trustcacerts

Dovresti essere in grado di importare il nuovo certificato nello stesso keystore del vecchio certificato, poiché hanno numeri seriali diversi. Se riscontri problemi con l'importazione, prova a utilizzare un nuovo alias. Poiché un alias è in genere solo per riferimento personale, è possibile modificare l'alias o entrare e rimuovere il vecchio certificato dal keystore. Non sarà più usato, quindi è sicuro da rimuovere, ma di solito non fa male nulla per tenerlo in giro.

Nota: non dovrai eseguire nuovamente l'importazione root CA a meno che GoDaddy non abbia aggiornato il certificato di origine (ciò accade, ma non molto spesso). Questo era il comando che hai usato per portare il certificato di root:

keytool -import -trustcacerts -alias myalias -keystore keystore -file gd_bundle.crt

Dato che hai detto che stai usando GoDaddy, ecco il link alla loro pagina di rinnovo. Le uniche istruzioni che hanno che sono vicine al server Jetty che stai utilizzando sono quelle per Tomcat. Mentre quelli non sono esatti, la pagina di Tomcat include alcune istruzioni sull'uso di keytool. pagina di supporto per il rinnovo dei certificati GoDaddy

    
risposta data 07.05.2014 - 16:25
fonte
0

Ho avuto lo stesso problema durante il rinnovo del certificato per il nostro server su www.tpsynergy.com. Dopo aver importato il nuovo certificato del server e riavviato il tomcat, l'errore che stavamo ottenendo era ERR_SSL_VERSION_OR_CIPHER_MISMATCH. Dopo molte ricerche, ho utilizzato questo link link per confrontare il csr (richiesta di firma del certificato con il certificato attuale) ). Entrambi non combaciavano. Così ho creato un nuovo CSR e ottenuto un nuovo certificato e installato lo stesso. Ha funzionato.

Quindi i passaggi completi per il processo sono

  1. Dallo stesso server in cui verrà installato il certificato, creare CSR

    keytool -keysize 2048 -genkey -alias tomcat -keyalg RSA -keystore tpsynergy.keystore
    

    (cambia il nome del dominio secondo necessità)

Durante la creazione di questo, chiederà il nome e il cognome. Non dare il tuo nome, ma usa il nome di dominio. Ad esempio l'ho dato come www.tpsynergy.com

2. keytool -certreq -keyalg RSA -alias tomcat -file csr.csr -keystore tpsynergy.keystore

Questo creerà un file csr.csr nella stessa cartella. copia il contenuto di questo nel sito di Godaddy e crea il nuovo certificato.

  1. Il file zip del certificato scaricato avrà tre file

    gd_bundle-g2-g1.crt
    gdig2.crt
    youractualcert.crt
    
  2. Dovrai scaricare il cert root gdroot-g2.crt dal repository di Godaddy.

  3. Copia tutti questi file nella stessa directory da cui hai creato il file CSR e dove si trova il file del keystore.

  4. Ora esegui i seguenti comandi uno per uno per importare i certificati nel keystore

    keytool -import -trustcacerts -alias root -file gd_bundle-g2-g1.crt -keystore tpsynergy.keystore
    
    keytool -import -trustcacerts -alias root2 -file gdroot-g2.crt -keystore tpsynergy.keystore
    
    keytool -import -trustcacerts -alias intermediate  -file gdig2.crt -keystore tpsynergy.keystore
    
    keytool -import -trustcacerts -alias tomcat  -file yourdomainfile.crt -keystore tpsynergy.keystore
    
  5. Assicurarsi che il file server.xml nella cartella conf abbia questa voce

       <!-- Define a SSL HTTP/1.1 Connector on port 8443
         This connector uses the JSSE configuration, when using APR, the
         connector should be using the OpenSSL style configuration
         described in the APR documentation -->
       <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"
          maxThreads="150" scheme="https" secure="true"
          clientAuth="false" sslProtocol="TLS"
    
          keystoreFile="/usr/share/tomcat7/webapps/productioncerts/tpsynergy.keystore"
          keystorePass="mypasswordsameas the one used while creating the csr"
       />
    
  6. Riavvia il tomcat

risposta data 06.12.2014 - 23:59
fonte

Leggi altre domande sui tag