Como posso comparar dois certificados SSL?

1

Qual é a melhor maneira de comparar dois certificados SSL? Existem ferramentas autorizadas? A razão pela qual eu quero fazer isso é que eu tenho 2 certificados, aparentemente com as mesmas propriedades, mas um funciona e o outro não. Só para ficar claro, eu quero comparar os atributos, eu sei que as assinaturas não vão corresponder, porque eles foram emitidos em momentos diferentes.

    
por Matt 21.05.2018 / 21:03

4 respostas

2

Se um certificado funciona e o outro não, então meu primeiro suspeito é que ambos os certificados não se originaram da mesma chave privada.

Comece verificando se os dois certificados realmente são os mesmos

$ openssl x509 -noout -modulus -in server.nr1.crt | openssl md5
$ openssl x509 -noout -modulus -in server.nr2.crt | openssl md5

Se estes dois vieram do mesmo csr, então o md5 irá corresponder.

Verifique os certificados em relação à chave privada da seguinte forma para garantir que o certificado e a chave privada correspondam:

$ openssl x509 -noout -modulus -in server.crt | openssl md5
$ openssl rsa -noout -modulus -in server.key | openssl md5

Os valores de hash da saída md5 devem corresponder.

Você também pode verificar seu CSR para garantir que ele corresponda à sua chave privada e cert.

$ openssl req -noout -modulus -in server.csr | openssl md5
    
por 21.05.2018 / 22:23
1

O Openssl fornece uma ferramenta para decodificá-los:

openssl x509 -text -in bla.pem

Posteriormente, você pode usar vimdiff para compará-los ou qualquer outra ferramenta de comparação.

Um palpite é que, se você incluiu os nomes de domínio apropriados, você também os incluiu como 'nome alternativo de assunto'?

    
por 21.05.2018 / 21:35
1

Capture os clientes usando cada um deles no fio. Use uma ferramenta que possa fazer um pouco de análise nas conversas como o Wireshark. Ou divirta-se e use produtos de análise de dados de fio como o ExtraHop, o Dynatrace ou o LANGuardian. A vantagem aqui é que você vê as implementações TLS reais em uso. Não é provável que uma das implementações seja quebrada, mas é possível.

Para ver certs, o OpenSSL não é o único jogo da cidade, qualquer sistema operacional em que você possa usar um certificado terá utilitários para consultá-los. O módulo pki do PowerShell é interessante porque você pode filtrar ou visualizar qualquer uma ou todas as propriedades.

    
por 21.05.2018 / 23:29
1

Seus dois certificados podem ser totalmente idênticos (sem número de série e data de emissão), mas um está funcionando com sucesso e outro não. Pode ser porque o número de série de outro certificado está listado na CRL (lista de certificados revogados).

Em Wikipédia :

A certificate revocation list (or CRL) is "a list of digital certificates that have been revoked by the issuing certificate authority (CA) before their scheduled expiration date and should no longer be trusted.

    
por 23.05.2018 / 06:39