O certificado SSL autoassinado pode ser renovado? Quão?

18

Sou relativamente novo em certificados SSL e gostaria de saber se um certificado autoassinado que eu uso para HTTPS pode ser renovado para estender sua data de validade, sem que todos os clientes do site passem pelo processo de "permitir exceção" que possuem para fazer quando eles visitam o site pela primeira vez ou, como quando emitem um novo certificado autoassinado criado do zero.

Eu encontrei o seguinte tutorial mostrando como renovar um certificado auto-assinado usando openssl, mas eu não era capaz de usá-lo de tal forma que meu navegador silenciosamente aceita sem mostrando que "Site não confiável" aviso de tela:

  # cd /etc/apache2/ssl
  # openssl genrsa -out togaware.com.key 1024
  # chmod 600 togaware.com.key
  # openssl req -new -key togaware.com.key -out togaware.com.csr
    AU
    ACT
    Canberra
    Togaware
    Data Mining
    Kayon Toga
    [email protected]
    (no challenge password)
  # openssl x509 -req -days 365 -in togaware.com.csr \
            -signkey togaware.com.key -out togaware.com.crt
  # mv apache.pem apache.pem.old
  # cp togaware.com.key apache.pem 
  # cat togaware.com.crt >> apache.pem 
  # chmod 600 apache.pem
  # wajig restart apache2

Minha configuração é praticamente a descrita nesta resposta e estou usando arquivos CRT e KEY ( deste tutorial ) em vez de um arquivo PEM, então talvez eu tenha estragado algo tentando aplicá-lo ao meu caso.

Por outro lado, encontrei muitas entradas no fórum sugerindo que é totalmente impossível renovar um certificado autoassinado e preciso criar um novo a partir do zero.

Qualquer ajuda seria apreciada ... ou essa pergunta seria mais adequada para /server// ou /superuser// ?

FriendFX
fonte
7
Em vez de fazer voto negativo nesta pergunta, dê conselhos específicos sobre o que melhorar.
21413 FriendFX

Respostas:

23

Por definição, um certificado autoassinado pode ser confiável somente através da confiança direta , ou seja, o que os navegadores da Web como o Firefox mostram como o processo "permitir exceção". Um certificado muito específico, até o último bit, é declarado como "confiável". Nada pode ser alterado em um certificado sem sair deste modelo e, em particular, a data de validade, que faz parte dos dados contidos no certificado.

Você pode imaginar a renovação como um tipo de coisa de família: quando um certificado é "renovado", na verdade é substituído por um irmão mais novo. Os clientes aceitam o novo certificado silenciosamente porque ele compartilha a mesma ancestralidade que o certificado anterior. Os certificados autoassinados são órfãos intrínsecos: eles não têm ascendência. Portanto, nenhum irmão e nenhuma transmissão automática.

(Além disso, a renovação é a criação de um novo certificado. Certificados são imutáveis . "Renovação" é uma maneira de pensar sobre o relacionamento entre os antigos e os novos certificados.)

Se você quer ser capaz de fazer renovações silenciosas, então você precisa de um auto-assinado CA certificado . Você emite certificados para o (s) servidor (es) dessa autoridade de certificação e solicita que seus clientes confiem nessa autoridade de certificação. É claro que isso exige muito: uma autoridade de certificação em que você confia é uma autoridade de certificação que pode falsificar toda a Internet aos seus olhos. Basicamente, esta solução consiste em criar e manter sua própria CA, que é uma responsabilidade e algum trabalho.


Da próxima vez que você produzir um certificado autoassinado, tenha uma vida útil longa. Os certificados expiram principalmente para fazer o trabalho de revogação (a expiração do certificado impede que a CRL cresça indefinidamente). Para um certificado autoassinado, não há revogação, portanto, você pode tornar o certificado válido por 20 anos. Ou por 2000 anos, nesse sentido (embora o Problema do ano 2038 possa aparecer em algum momento, dependendo do software do cliente).

Tom Leek
fonte
Obrigado pela resposta extensa! Estou pensando no que isso significa em relação ao tutorial ao qual vinculei . Isso é apenas para certificados de CA autoassinados? Acho que esperava (e pensei depois de ler o tutorial) que houvesse uma maneira de ler a chave privada da antiga e criar uma nova e "compatível" ... uma que parecesse uma "criança" em vez de uma "órfão". Boa analogia, a propósito!
FriendFX
@FriendFX - O que você quer não é possível. Tom está correto, a renweal gera um novo certificado.
22713 Ramhound
@ Ramhound - eu entendo. A única questão em aberto é: qual é o objetivo desse tutorial?
FriendFX 23/07
@FriendFX - Foi escrito por um cara aleatório na internet só porque eles têm um blog, não significa que eles entendem o que estão escrevendo. O autor simplesmente não explica que o tutorial irá resultar em um novo certificado
Ramhound
3
@FriendFX Sim, esse tutorial funcionará apenas para certificados de CA autoassinados. Se você usar o mesmo par de chaves e assunto, poderá criar vários certificados de CA que serão atendidos como emitentes válidos para certificados emitidos; esses certificados podem até ser emitidos por diferentes CAs pai, denominadas "encadeamento".
Calrion
3

Resposta curta: Não.

Confiar em um certificado autoassinado é como confiar em um passaporte individual em vez do país que o emitiu. Se você obtiver um novo passaporte, ele não será automaticamente confiável por alguém que confiou no antigo, especificamente porque é uma coisa diferente com atributos diferentes (número do passaporte, datas etc.); não há base para alguém confiar explicitamente no passaporte antigo saber que o novo pode ser confiável.

Liam Dennehy
fonte
0

Se você estiver usando certificados autoassinados (eu recomendo usar o xca no Windows), basta definir a data de vencimento para 7999-12-31 (esse é o tempo máximo para o UTC) e a data inicial para 1970-01-01 (para compatibilidade com data / hora configurada incorretamente nos PCs)

H3LL0
fonte