Para verificar se o certificado do google.com foi revogado, tentei o seguinte comando:
curl https://www.google.com --cacert GeoTrust_Global_CA.pem --crlfile gtglobal.pem -v
, mas recebi o temido erro "problema de certificado SSL":
* About to connect() to www.google.com port 443 (#0)
* Trying 81.24.29.91... connected
* successfully set certificate verify locations:
* CAfile: GeoTrust_Global_CA.pem
CApath: /etc/ssl/certs
* successfully load CRL file:
* CRLfile: gtglobal.pem
* SSLv3, TLS handshake, Client hello (1):
* SSLv3, TLS handshake, Server hello (2):
* SSLv3, TLS handshake, CERT (11):
* SSLv3, TLS alert, Server hello (2):
* SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
* Closing connection #0
curl: (60) SSL certificate problem, verify that the CA cert is OK. Details:
error:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificate verify failed
More details here: http://curl.haxx.se/docs/sslcerts.html
Acho que esse erro não está correto, pois o Google deve ter um certificado válido.
Você sabe como eu poderia emitir um comando curl que faz isso corretamente?
Mais detalhes
Se você está se perguntando por que usei esses arquivos específicos (GeoTrust_Global_CA.pem e gtglobal.pem) no comando curl, é assim que procedi:
- Analisei primeiro o que a CA emitiu o certificado para https://www.google.com . Acontece que é a GeoTrust Global CA;
- Fiz o download do certificado raiz da CA Global GeoTrust a partir daqui (este é o arquivo GeoTrust_Global_CA.pem);
- Eu baixei a CRL correspondente (lista de revogação de certificados) aqui (este é o arquivo gtglobal.pem).
linux
certificate
curl
Claudiu
fonte
fonte
Respostas:
Esse é o meu roteiro diário:
Ouput:
fonte
Aparentemente, você não pode apenas verificar um site com uma única solicitação simples. Consulte /programming/16244084/how-to-programmatically-check-if-a-certificate-has-been-revoked?lq=1 e perguntas relacionadas mais antigas sobre stackoverflow.
O curl também não funcionou com as Listas de revogação de certificados , nem no Windows nem no Linux. Por que você deve usar curl ? O Openssl parece mais apropriado:
Nós temos
Então podemos inspecionar alguns certificados:
grep crl
na saída do comando acima. As partes interessantes são:Agora podemos inspecionar manualmente crl:
Agora vemos uma lista de certificados revogados. IMHO, usando curl não é suficiente, é necessário outro programa para verificar os certificados. Fazendo uma simples
vemos que o curl não está verificando revogações (nem mesmo se conectando aos locais relevantes). Apenas diz
fonte
Aparentemente, esse é um problema bastante comum no Windows, como mostra esta pergunta no stackoverflow . Refiro-me especificamente à resposta do usuário Артур Курицын, que cito aqui para sua conveniência:
Além disso, este artigo também pode ser útil.
fonte
Uma maneira que eu achei que o trabalho é semelhante a outros já expostos, apenas envia a saída
dev/null
e é relativamente rápido de usar.curl -L -v -s https://www.google.de 1>/dev/null
fonte
curl
Unix não verifica (a menos que você o compile especificamente com uma biblioteca SSL que faz isso automaticamente para você).