Criando um novo certificado SSL para um nome que já possui

2

No trabalho, muitos dos nossos servidores internos possuem certificados SSL que geramos com openssl (através de alguns scripts simples). A geração funciona bem, mas o manuseio subsequente precisa de melhorias, como consequência, perdemos qualquer cópia não criptografada do certificado SSL para um servidor. A consequência é que teremos que gastar algum tempo fazendo um novo certificado e implantando-o, mas isso me leva ao problema.

Quando tento criar um novo certificado SSL para internal.server.company , o openssl falha no final do processo com

failed to update database
TXT_DB error number 2

porque já existe um certificado para esse host no banco de dados.

Se o certificado antigo expirou, acredito que openssl ca -updatedb o removeria do banco de dados, mas esse não é o caso.

Eu posso contornar isso abrindo (o relevante) index.txt em um editor, pesquise internal.server.company e exclua a linha encontrada - mas isso parece um hack. Existe uma boa maneira de fazer openssl aceitar que eu quero fazer um novo certificado de nome que eu acho que já tem um certificado?

    
por Henrik 10.08.2018 / 16:27

1 resposta

2

Na mesma pasta que seu banco de dados (o arquivo index ou index.txt ), crie um arquivo index.attr e adicione o seguinte:

unique_subject = no

Se você não tiver certeza de onde seu arquivo de banco de dados está localizado, verifique o arquivo openssl.cnf que você está usando para algo como o seguinte:

[ CA_default ]

dir             = ./demoCA              # Where everything is kept
certs           = $dir/certs            # Where the issued certs are kept
crl_dir         = $dir/crl              # Where the issued crl are kept
database        = $dir/index.txt

No exemplo acima, o banco de dados é index.txt e reside em ./demoCA . Você precisará, portanto, colocar seu novo arquivo index.attr em ./demoCA .

    
por 10.08.2018 / 16:42

Tags