Eu quero saber como posso saber com certeza que um determinado arquivo é um certificado SSL. A extensão do arquivo é suficiente para descobrir se um arquivo é um certificado ou não?
relate perguntas
-
Falha na renovação do Let's Encrypt
-
Como adicionar um certificado SSL autoassinado ao armazenamento confiável do Linux (Ubuntu/Alpine)?
-
Não é possível verificar um certificado openssl em relação a um certificado openssl autoassinado?
-
Como tornar o servidor minikube tls-curlable?
-
Como configuro DNS, AWS S3, AWS Cloudfront e AWS Certificate Manager para proteger vários sites
Um certificado SSL nada mais é do que um certificado X.509 versão 3 com algumas restrições adicionais para uso comum.
A principal restrição é, obviamente, o X500 Common Name (CN), que precisa ser definido para o nome do servidor. A propósito, o campo Subject Alternative Name pode incluir mais nomes.
Além disso, para a maioria dos certificados, o uso de chave estendida precisa ser definido como autenticação de servidor (que corresponde a OID: 1.3.6.1.5.5.7.3.1). Os servidores também podem definir a autenticação do cliente (OID: 1.3.6.1.5.5.7.3.2).
Observe que, pelo menos para TLS 1.2, essas restrições não são explicitamente mencionadas na especificação (ugh), mas é melhor você ter certeza de que elas estão presentes , a menos que seus navegadores/clientes comecem a gritar assassinato .
Para validar que um arquivo é um certificado (TLS), provavelmente é mais fácil abri-lo usando o Windows e verificar algumas restrições adicionais. Pessoalmente, no entanto, eu preferiria usar, por exemplo, a linha de comando OpenSSL para que você possa simplesmente enviar para o texto:
por exemplo, produziria o seguinte:
Isso está assumindo um certificado no formato PEM, para o formato binário você pode adicionar
-inform DER
, a verificação de qual é usado pode ser realizada usando ofile
comando, comumente presente no Linux e no Cygwin (se instalado corretamente).Pessoalmente, eu não confiaria necessariamente em extensões de arquivo. É muito fácil ter um arquivo com a extensão errada, as extensões de arquivo são uma maneira muito flexível de digitar o sistema.
OK, agora você verificou que o arquivo é um certificado X.509 em relação à estrutura . No entanto, você também pode querer verificar a cadeia de certificados até um certificado confiável. E você também pode querer realizar a outra validação, como verificar se o certificado ainda é válido na(s) data(s) certa(s). Aqui está uma dica de como fazer isso.
Para ser totalmente completo, você também pode querer verificar o status do OCSP, para ver se a Autoridade Certificadora (CA) revogou o certificado.
Você definitivamente precisaria disso se o certificado pudesse ser gerado por um adversário ou porque é um certificado de teste (auto-assinado) gerado por um dos desenvolvedores de uma empresa.