Como posso renovar minha chave de assinatura de autoridade de certificação?

2

Eu sou um noob considerando as autoridades de certificação. Eu segui este artigo há um tempo atrás para configurar minha própria autoridade de certificação e com sua configuração de ajuda minha própria rede freelan VPN: link

Basicamente, tudo o que eu precisava fazer era ligar para:

openssl req -new -x509 -extensions v3_ca -keyout key/ca.key -out crt/ca.crt -config ca.cnf

O problema é que meu certificado ca.crt , que acredito ser a chave pública para ca.key , agora expirou de acordo com openssl . Eu usei este certificado para assinar outras chaves, embora não queira passar por isso novamente.

Existe uma maneira de criar um novo arquivo ca.crt com uma data de validade mais longa?

Não me lembro se precisei definir a data de expiração de ca.crt em algum lugar, mas não acredito, porque só valeu por um mês. Eu gostaria de saber se isso é esperado e recomendado ou realmente um erro que cometi ao longo do caminho? Por quanto tempo o certificado ca.crt deve ser válido?

Encontrei diferentes comandos on-line, mas não sei qual é o certo para mim, por exemplo: link link

    
por Chris 08.03.2016 / 13:02

2 respostas

4

How can I renew my certificate authority signing key?

Você tem dois problemas para enfrentar. A primeira é a continuidade dos certificados de entidade final (servidor e usuário). A segunda é a alteração da CA raiz.

Is there a way I can simply create a new ca.crt file with a longer expiry date?

Sim, mas veja os detalhes abaixo.

O primeiro problema, a continuidade dos certificados de entidade final (servidor e usuário), é principalmente resolvido usando a mesma chave pública quando você passa por cima da CA raiz.

A nova CA raiz auto-assinada ainda precisará ser instalada nos armazenamentos confiáveis relevantes, mas a continuidade da chave significa que os certificados de entidade final não precisam ser reemitidos. Se você usar uma nova chave pública para a CA raiz, precisará reemitir todos os certificados de entidade final.

O segundo problema, passando pela CA raiz, deve acontecer porque expirou. Este é o mesmo problema que re-certificar uma CA raiz porque o hash é alterado de SHA-1 para SHA-256 para estar em conformidade com CA / Requisitos da linha de base do navegador . Várias CAs fizeram isso na vida real.

O impacto do rollover pode ser reduzido usando a mesma chave pública. Isso também ajudará com controles de segurança aprimorados, como fixar uma chave pública de uma CA. Se o certificado da estiver marcado (ao contrário da chave pública ), ele criará muito ruído estranho em ferramentas como Cert Patrol .

Para passar pela CA, você precisa criar um certificado de CA raiz "equivalente" (ou o mais próximo possível do equivalente). A forma como os agentes do usuário identificam exclusivamente um certificado é descrita em RFC 4158, Infraestrutura de chave pública da Internet X.509: Construção do caminho de certificação .

A abreviação de RFC 4158 é o par { Nome Distinto do Assunto , Número de Série } pode ser usado para identificar de forma exclusiva um certificado em uma loja. Como um CA ou Emissor, você é suposto para garantir que os números de série sejam exclusivos, mesmo se você re-certificar.

Os certificados de entidade final têm maneiras adicionais de serem identificados de forma exclusiva, incluindo o Identificador de chave de autoridade (AKID) . De fato, o certificado de um servidor pode usar um hash do { Nome Distinto do Assunto , Número de Série } como seu AKID (se bem me lembro).

Parece que você descobriu como criar um certificado de CA autoassinado, portanto não discutirei os comandos do OpenSSL.

Os problemas reais ocorrem quando seus pares de chaves pública / privada são comprometidos. Você não pode passar por cima de sua autoridade de certificação sob a chave pública existente, portanto, é necessário emitir um novo certificado de CA raiz e reemitir todos os certificados de entidade final.

Para recapitular, aqui estão os itens acionáveis:

  • Use a mesma chave pública para a CA
  • Use o mesmo nome distinto para a CA
  • Use um novo número de série para a CA
  • Instale a CA recém-emitida em todas as máquinas clientes
  • Não reenvie certificados de entidade final
por 31.03.2016 / 23:52
1

De acordo com o link , a seguinte sequência deve funcionar:

openssl req -new -key key/ca.key -out key/newca.csr
openssl x509 -req -days 3650 -in key/newca.csr -signkey key/ca.key -out crt/newca.crt
    
por 08.03.2016 / 13:02