Cómo realizar la renovación de un certificado SSL

7

Tengo un certificado SSL de GoDaddy y es hora de renovarlo. Terminé con un solo archivo de "almacén de claves", que le doy a mi servidor web (Jetty). Este es el proceso por el que pasé para generar el archivo de almacén de claves original, que llega a mi último punto de confusión:

Primero generé mi archivo de almacén de claves:

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

Luego generé la solicitud de firma de certificado (CSR):

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

Envié el archivo myrequest.csr a GoDaddy. Ellos respondieron con dos archivos:

example.com.crt
gd_bundle.crt

Luego ejecuté este paso, que parece estar importando una parte del certificado de GoDaddy a mi archivo de almacén de claves, pero no estoy seguro de cómo funciona:

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

Paso final, similar al anterior, que lleva parte del certificado de dominio al archivo del almacén de claves:

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

Ahora le doy el archivo de almacén de claves a mi instancia de Jetty y todo funciona bien.

Con la renovación, sé que tengo que enviar otro CSR a GoDaddy. ¿Pero empiezo completamente desde cero? ¿O se suponía que debía guardar el archivo del almacén de claves original en el primer paso y continuar desde allí?

No conservé una copia del archivo de almacén de claves original, lo modifiqué a través de los pasos mencionados anteriormente. Entonces, si tengo que usarlo para una renovación, no estoy seguro de si me metí en problemas aquí.

Aquí está el documento de Jetty para esto que utilicé durante la creación del almacén de claves original: enlace

    
pregunta roger 12.01.2014 - 00:24
fuente

2 respuestas

11

Los certificados digitales que se utilizan para SSL / TLS tienen varios componentes. Si bien hay muchos detalles que podemos examinar, todo lo que realmente necesitamos es una descripción general de alto nivel, pero cada pieza es importante para comprender qué debe hacer y por qué.

Cuando comenzó el proceso de obtención de su certificado, primero emitió el comando,

  

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

Usted describió esto como "crear su almacén de claves", lo cual es correcto, pero también hizo algo mucho más importante: generó su par de claves pública / privada. En este caso, el nuevo almacén de claves contenía un par de claves utilizando el algoritmo RSA y con 2048 bits de entropía (una forma elegante de decir qué tan fuerte es la clave, o cuánto tiempo puede tardar en romperse en relación con otras claves). Esto es importante porque el par de claves es cómo le demostrará a la Autoridad de Certificación (CA) que su próxima solicitud es una renovación, es realmente suya y corresponde al mismo certificado.

Cuando generaste tu solicitud de certificado,

  

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

usted creó un archivo que contenía la información de su sitio web (foo.com), junto con un montón de otras cosas, incluida su clave pública. Todo se codificó en un formato conocido y se envió a la CA. La CA generó su certificado utilizando su clave pública y su clave privada, que es la forma en que un navegador web aleatorio puede usar esto para saber que están en su sitio web y que es seguro enviar datos. Su certificado se valida por su clave privada, que solo usted tiene, y por la clave pública de la AC, que solo funciona si coincide con la clave privada que firmó el certificado.

Entonces, ¿cómo puede todo esto cumplir su objetivo de renovar su certificado?

La respuesta corta es que no se renueva, porque una renovación no es realmente una renovación.

Una "renovación" es solo una manera elegante de decir que está solicitando un nuevo certificado, con una nueva fecha de caducidad, utilizando la misma clave privada que para el certificado anterior. Si usa el mismo comando que antes (con la opción -certreq), creará una nueva solicitud de certificado utilizando su par de claves existente. Envíelo a GoDaddy (o a cualquier otra CA) y deberían poder procesar su solicitud sin problemas.

Cuando te envíen el certificado, ejecuta el comando de importación y listo:

  

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

Debería poder importar el nuevo certificado en el mismo almacén de claves que el certificado anterior, ya que tienen diferentes números de serie. Si tiene problemas con la importación, intente usar un nuevo alias. Dado que un alias generalmente es solo para su propia referencia, puede cambiar el alias o ir y eliminar el certificado anterior del almacén de claves. Ya no se utilizará, por lo que es seguro eliminarlo, pero tampoco suele dañar nada para mantenerlo cerca.

Nota: no tendrá que ejecutar la importación raíz de CA nuevamente a menos que GoDaddy haya actualizado su certificado raíz (esto sucede, pero no muy a menudo). Este fue el comando que usaste para traer el certificado raíz:

  

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

Como mencionó que está usando GoDaddy, aquí está el enlace a su página de renovación. Las únicas instrucciones que tienen que están cerca del servidor Jetty que está utilizando son las de Tomcat. Si bien no son exactos, la página de Tomcat incluye algunas instrucciones sobre el uso de keytool. página de soporte de Renovación de certificados de GoDaddy

    
respondido por el Eric A. Laney 07.05.2014 - 16:25
fuente
0

Tuve el mismo problema al renovar el certificado de nuestro servidor en www.tpsynergy.com. Después de importar el nuevo certificado de servidor y reiniciar el tomcat, el error que recibíamos era ERR_SSL_VERSION_OR_CIPHER_MISMATCH. Después de mucha investigación, utilicé este enlace enlace para comparar el CSR (solicitud de firma de certificado con el certificado real ). Ambos no coincidieron. Así que creé un nuevo csr y obtuve un nuevo certificado e instalé el mismo. Funcionó.

Por lo tanto, los pasos completos para el proceso son

  1. Desde el mismo servidor donde se instalará el certificado, cree CSR

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

    (cambie el nombre de dominio según sea necesario)

Mientras crea esto, le pedirá nombre y apellido. No le des su nombre, pero use el nombre de dominio. Por ejemplo, lo di como www.tpsynergy.com

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

Esto creará un archivo csr.csr en la misma carpeta. Copie el contenido de este en el sitio de Godaddy y cree el nuevo certificado.

  1. El archivo zip del certificado descargado tendrá tres archivos

    gd_bundle-g2-g1.crt
    gdig2.crt
    youractualcert.crt
    
  2. Deberá descargar el certificado raíz gdroot-g2.crt desde el repositorio de Godaddy.

  3. Copie todos estos archivos en el mismo directorio desde donde creó el archivo CSR y donde se encuentra el archivo de almacén de claves.

  4. Ahora ejecute los comandos a continuación uno por uno para importar los certificados en el almacén de claves

    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. Asegúrese de que el archivo server.xml en la carpeta conf tenga esta entrada

       <!-- 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. Reinicia el tomcat

respondido por el Srini Raja 06.12.2014 - 23:59
fuente

Lea otras preguntas en las etiquetas