Eu quero ser capaz de fazer uma conexão HTTPS com um site e, ao negociar o SSL, verifique se:
O certificado é válido em todos os aspectos para o host listado no certificado (não expirado, assinado pela CA confiável) e
O certificado é para um host que eu especifico (ou seja, posso estar conectando via HTTPS a example1.com, mas apenas quero verificar se o certificado usado por example1.com é válido para example4.com porque confio example4.com não foi comprometido).
Há um site afiliado ao redhat que usa um certificado válido para * .redhat.com, mas que não está no domínio redhat.com. De qualquer outra maneira, este certificado é válido (ou seja, é emitido por uma CA confiável, não expirou e tenho 99,99% de certeza de que não é roubado, embora, se fosse, isso significaria que o redhat estava comprometido, portanto Eu teria problemas maiores), e eu quero baixar um módulo RPM deste site, enquanto (espero que) garanta que eu não tenha sido MITM.
Por isso, quero fazer o download de algo do exemplo.com de afiliados redhat ao verificar se o site ao qual estou me conectando está realmente usando um certificado de redhat válido.
curl
- a curva mais próxima dessa funcionalidade é este flag de opção , que apenas desabilita todas as autenticações de certificados, o que é não o que eu quero, e
wget
- tem apenas a opção --no-check-certificate
sem argumentos, o que é igualmente inútil.
De acordo com a documentação do libcurl, eu poderia usar este , que parece promissor, mas menciona que requer que eu tenha "... uma quantidade não trivial de conhecimento das bibliotecas openssl", que eu demonstravelmente não possuo. Eu posso programar em C ou Python ou qualquer outra coisa, embora o que seja mais útil seja (em ordem decrescente de preferência):
Tags https linux certificate