¿Puedo reutilizar una CSR SSL?

21

He generado un certificado SSL auto certificado para probar un nuevo sitio web. Ha llegado el momento de que el sitio se active y ahora quiero comprar un certificado de GeoTrust. ¿Puedo usar la misma CSR que generé para el autocertificado o necesito crear una nueva?

Rico

kim3er
fuente

Respuestas:

19

Siempre que use la misma clave, dominio (también conocido como nombre común), detalles de contacto y período de validez, debería poder usar la misma CSR.

Aunque, para ser sincero, generar una CSR es un trabajo bastante simple, por lo que si necesita modificar los detalles de contacto (que muchos proveedores de SSL son estrictos) no es un gran problema.

Cooperativas
fuente
1
Estoy de acuerdo. Generar una CSR es una tarea tan trivial que no veo por qué te molestarías en intentar reutilizar una.
joeqwerty 01 de
55
Una vez que haya instalado OpenSSL, puede generar una nueva CSR en aproximadamente 30 segundos. Y si crees que te tomará mucho más tiempo, ¡ entonces definitivamente hazlo porque necesitas la práctica !
Austin '' Peligro '' Powers
1
No es aplicable al caso del OP, pero si está buscando usar la fijación de certificados, es más práctico usar el mismo CSR que actualizar sus aplicaciones del lado del cliente.
negro
Si la clave, el dominio y los detalles son iguales, la CSR será idéntica.
graywh
11

Para su caso de ejemplo, no creo que valga la pena intentar reutilizar CSR. Sin embargo, para un gran equipo diverso de desarrolladores de Apple iOS (como yo tengo), hay una buena razón para hacerlo. Creamos (en realidad, le pedimos a Apple que cree) todos nuestros certificados de firma y eliminamos los certificados de la misma clave privada. De esa manera, todos podemos colaborar fácilmente en nuestras más de 85 aplicaciones. Por esta razón, mantenemos una sola CSR y siempre usamos la misma mientras la clave sea válida.

Hasta donde sé, no hay ninguna razón para generar repetidamente CSR a partir de una sola clave privada. Me encantaría que me corrijan si me equivoco.

Bruno Bronosky
fuente
66
Han pasado 4 años sin corrección. Supongo que no me equivoco.
Bruno Bronosky
5

El principal beneficio de tener certificados de duración limitada es reducir el daño si se filtra su clave privada. Alguien que posee la clave privada puede hacerse pasar por usted para siempre si reutiliza la CSR, porque la reutilización de la CSR implica también la reutilización de su clave privada.

No haga eso, es mejor automatizar la generación tanto de las claves privadas como de las CSR y encontrar formas convenientes de distribuir las claves privadas en constante cambio a los servidores de compilación de aplicaciones y servidores push. La mayoría de los desarrolladores mortales normalmente nunca necesitarían hacer una versión / distribución de compilación para la tienda de aplicaciones de todos modos, por lo que no necesitarán las claves privadas.

Stefan L
fuente
1
Si bien es cierto que "reutilizar la CSR implica también la reutilización de su clave privada", no significa que "suplante ser usted para siempre si reutiliza la CSR". Si decide usar una clave durante N meses, está bien usar la misma CSR para esos N meses.
Bruno Bronosky
2
Sí, tienes razón Bruno. Asumí que las personas que reutilizaban la CSR lo hicieron por ignorancia y, por lo tanto, continué esa práctica "para siempre", sin embargo, por supuesto, podría haber algunos que conozcan los problemas y lo hagan basándose en una planificación cuidadosa durante un tiempo limitado.
Stefan L
1

De hecho, en teoría puede reutilizar la misma CSR, ya que esto es solo un contenedor para

  • su clave pública (solo números utilizados para el cifrado RSA (matemáticas específicas))
  • sus detalles de "Asunto" (quién es usted, qué dominio, etc.) Texto utilizado para identificar al propietario de esa clave pública

Esto es de lo que se trata un certificado (abreviatura de PublicKey Certificate) después de todo

Pero como se señaló en otras respuestas, es una buena práctica cambiar la clave privada regularmente, por lo que eso implica un nuevo certificado y una nueva CSR para obtenerlo.

Puede ver fácilmente el contenido de una CSR

p.ej

$ openssl req -new -batch -subj "/CN=My Common Name/OU=My Org Unit/O=My Organisation" -sha256 -newkey rsa:2048 -keyout private.key -nodes -out request.csr
Generating a 2048 bit RSA private key
.............................................................................................+++++
.........+++++
writing new private key to 'private.key'
-----

$ ls
private.key  //  keep that private, the PublicKey side is easily be generated from this
request.csr // your PublicKey + Subject details

RSE

$ openssl req -in request.csr -text -noout
Certificate Request:
    Data:
        Version: 1 (0x0)
        Subject: CN = My Common Name, OU = My Org Unit, O = My Organisation
        Subject Public Key Info:
            Public Key Algorithm: rsaEncryption
                RSA Public-Key: (2048 bit)
                Modulus:                    ///////// Matches the PrivateKey modulus
                    00:b1:e8:de:e6:bf:21:45:51:75:15:23:5e:6e:7a:
                    7d:95:53:e5:d5:ec:5b:38:cd:7f:38:2d:53:8a:54:
...
                    fe:b5:78:de:9b:c1:ee:c1:51:6f:fd:fb:0e:62:09:
                    03:87
                Exponent: 65537 (0x10001)   ///////// Matches the PrivateKey publicExponent
        Attributes:
            a0:00
    Signature Algorithm: sha256WithRSAEncryption
         a1:44:1f:b2:ec:c0:82:bc:99:da:69:ce:3e:77:9f:46:51:95:
...
         3b:2d:84:e3:73:ac:be:c8:da:29:fd:62:90:11:dd:8a:a6:4f:
         7b:f8:ac:f1

Y PrivateKey

$ openssl rsa -in private.key -text -noout
// all the below are numbers that takes part in Mathematical encryption (search for RSA maths)
RSA Private-Key: (2048 bit, 2 primes)

// The Numbers that can be freely published
modulus:
    00:b1:e8:de:e6:bf:21:45:51:75:15:23:5e:6e:7a:
    7d:95:53:e5:d5:ec:5b:38:cd:7f:38:2d:53:8a:54:
...
    fe:b5:78:de:9b:c1:ee:c1:51:6f:fd:fb:0e:62:09:
    03:87
publicExponent: 65537 (0x10001)

// The Numbers that must be kept private !
privateExponent:
    0a:81:73:d8:30:65:28:90:bc:d7:38:b5:74:d4:aa:
...
    b1:9b:30:2e:a2:dd:46:c1:10:0f:b0:da:ac:b6:ea:
    01
prime1:
    00:e0:28:01:87:95:70:d0:b8:21:07:e0:4f:96:a6:
...
    66:28:8f:3d:d7:eb:e6:b4:81
prime2:
    00:cb:2e:fe:1b:b6:30:ea:8d:9e:6d:23:83:d8:b6:
...
    4d:64:39:5c:9c:18:a0:14:07
exponent1:
    22:e2:36:f2:b9:af:f7:db:5f:d0:90:f8:f1:d1:ff:
...
    3a:31:a8:87:2c:c0:17:81
exponent2:
    5a:8b:3d:77:f1:ef:c8:86:85:a4:13:20:8d:31:a4:
...
    a5:ba:1e:37:fd:8d:50:7f
coefficient:
    00:d3:d3:b6:81:4b:a9:c2:aa:ff:e1:07:cb:de:ea:
...
    5c:e9:3b:d3:f7:67:82:c3:7f
Julien
fuente