Posso reutilizar um CSR SSL?

21

Eu criei um certificado SSL auto certificado para testar um novo site. Chegou a hora do site entrar no ar e agora quero comprar um certificado da GeoTrust. Posso usar o mesmo CSR gerado para o certificado pessoal ou preciso criar um novo?

Rico

kim3er
fonte

Respostas:

19

Desde que você utilize a mesma chave, domínio (também conhecido como nome comum), detalhes de contato e período de validade, você poderá usar o mesmo CSR.

Embora, para ser honesto, gerar um CSR seja uma tarefa bastante simples, por isso, se você precisar alterar os detalhes de contato (nos quais muitos provedores de SSL são rigorosos), não é grande coisa.

Cooperativas
fonte
1
Concordo. Gerar um CSR é uma tarefa tão trivial que não vejo por que você se incomodaria em tentar reutilizar um.
Joeqwerty
5
Depois de instalar o OpenSSL, você poderá gerar um novo CSR em cerca de 30 segundos. E se você acha que vai demorar muito mais, então definitivamente faça isso porque você precisa da prática !!!!!
Austin '' Danger '' Powers
1
Não aplicável ao caso do OP, mas se você deseja usar a fixação de certificado, é mais prático usar o mesmo CSR do que atualizar os aplicativos do lado do cliente.
preto
Se a chave, o domínio e os detalhes forem os mesmos, o CSR será idêntico.
graywh
11

Para o seu caso de exemplo, acho que não vale a pena tentar reutilizar os CSRs. No entanto, para uma grande equipe diversificada de desenvolvedores da Apple iOS (como eu tenho), há uma boa razão para fazer isso. Criamos (na verdade, pedimos à Apple para criar) todos os nossos documentos de assinatura e enviamos documentos da mesma chave privada. Dessa forma, todos podemos colaborar facilmente em nossos mais de 85 aplicativos. Por esse motivo, mantemos um único CSR por aí e sempre o usamos enquanto a chave for válida.

Até onde eu sei, não há razão para gerar repetidamente CSRs a partir de uma única chave privada. Eu adoraria ser corrigido se estiver errado.

Bruno Bronosky
fonte
6
Faz 4 anos sem correção. Acho que não estou errado.
precisa saber é o seguinte
5

O principal benefício de ter certificados de duração limitada é reduzir o dano se sua chave privada vazar. De outra forma, alguém que possua a chave privada pode se passar por você para sempre, se você reutilizar a RSE, porque a reutilização da RSE implica também a reutilização de sua chave privada.

Por favor, não faça isso, é melhor automatizar a geração das chaves privadas e dos CSRs e encontrar maneiras convenientes de distribuir as chaves privadas em constante mudança para servidores de criação de aplicativos e servidores push. A maioria dos meros desenvolvedores mortais normalmente nunca precisaria fazer uma compilação de versão / distribuição para a loja de aplicativos, portanto, não precisará das chaves privadas.

Stefan L
fonte
1
Embora seja verdade que "reutilizar o CSR também implique a reutilização da sua chave privada", isso não significa que "se faça de você para sempre, se você reutilizar o CSR". Se você decidir usar uma chave por N meses, não há problema em usar o mesmo CSR nesses N meses.
precisa saber é o seguinte
2
Sim, você está certo, Bruno. Presumi que as pessoas que reutilizavam a RSE o faziam por ignorância e, assim, continuavam a prática "para sempre", no entanto, é claro que pode haver alguns que estão cientes dos problemas e o fazem com base em um planejamento cuidadoso por um tempo limitado.
Stefan L
1

Em teoria, é possível reutilizar o mesmo CSR, pois esse é apenas um contêiner para

  • sua chave pública (apenas números usados ​​para criptografia RSA (matemática específica))
  • seus detalhes de "Assunto" (quem você é, qual domínio, etc ...) Texto usado para identificar o proprietário dessa chave pública

Afinal, trata-se de um certificado (abreviação de Certificado de Chave Pública)

Mas, como observado em outras respostas, é uma boa prática alterar a chave privada regularmente, o que implica um novo Certificado e um novo CSR para obtê-lo.

Você pode ver facilmente o conteúdo de um CSR

por exemplo

$ 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

CSR

$ 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

E 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
fonte