Como obter e usar certificados com curl

14
  1. Digitando o seguinte comando

    curl -k [email protected]:password https://www.example.com 
    

    Retorna o seguinte erro

     <HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8">
    <TITLE>301 Moved</TITLE></HEAD><BODY>
    <H1>301 Moved</H1>
    The document has moved
    <A HREF="http://mail.google.com/mail/">here</A>.
    </BODY></HTML>
    badauth
    
  2. depois de baixar o cacert.crtarquivo daqui

    http://www.cacert.org/index.php?id=3
    

    Renomeie o cacert.crtarquivo paracacert.pem

    Então tentei:

    curl --cacert /path/to/cacert.pem [email protected]:password https://www.example.com 
    

    Mas obtenha o mesmo erro.

  3. Então tentando:

    curl  https://www.example.com 
    

    Eu recebo este erro

    curl: (60) Problema no certificado SSL: não é possível obter o certificado do emissor local Mais detalhes aqui: http://curl.haxx.se/docs/sslcerts.html

    o curl executa a verificação do certificado SSL por padrão, usando um "pacote" de chaves públicas da autoridade de certificação (CA). Se o arquivo configurável padrão não for adequado, você poderá especificar um arquivo alternativo usando a opção --cacert.
    Se esse servidor HTTPS usar um certificado assinado por uma CA representada no pacote, a verificação do certificado provavelmente falhou devido a um problema com o certificado (pode estar expirado ou o nome pode não corresponder ao nome de domínio na URL).
    Se você deseja desativar a verificação do certificado por curl, use a opção -k (ou --insecure)

  4. Então eu tentei com -k

    curl  -k https://www.example.com 
    

    Mas é claro, pegue o erro

    Badauth

Acho que estou fazendo algo errado com o arquivo de certificado, mas não sei onde obter um arquivo de certificado ou o que fazer com ele depois de o ter.

É claro que não tenho problemas para fazer login usando um navegador, mas gostaria de automatizar o processo com a linha de comando para fazer isso com o tasker no meu tablet Android por Wi-Fi.

Joshua Robison
fonte

Respostas:

2

SUCESSO!!

Passei por um serviço gratuito da web chamado dnsomatic (administrado pelo pessoal da opendns)

É tão simples quanto se inscrever em uma conta e adicionar opendns aos seus serviços. Nenhuma configuração além disso.

Para usuários de Android, as versões do wget do busybox estão muito atrasadas e não têm opções para usar nomes de usuário e senhas, portanto, teremos que instalar e usar o cURL

O guia para instalar o enrolamento pode ser encontrado aqui

http://forum.xda-developers.com/showthread.php?t=2362386

Depois de se enrolar, você pode simplesmente fazer coisas como atualizar seu ip do opendns

curl -u opendnsusername:password http://updates.dnsomatic.com/nic/update?hostname=opendnshostname
Joshua Robison
fonte
Ainda não consigo descobrir como obter e usar certificados com curl, mas meu objetivo final foi alcançado. Talvez alguém possa ajudar com o bit do certificado.
27413 Joshua Robison
1

Você pode fazer o download dos certificados raiz do cacert aqui: http://www.cacert.org/index.php?id=3


fonte
1
Acabei de escolher o arquivo .crt básico no formato pem e alterei o nome para .pem?
Joshua Robison
1
Aparentemente não. Fiz o download do arquivo .crt que diz que está no formato pem e o renomeei para curlcacert.pem, e fiz curl --cacert /path/to/curlcacert.pem site.com, mas ainda obtém erros de certificação .
Joshua Robison
1
O que faço com eles depois de baixá-los? Não posso simplesmente usar o mesmo certificado que meu navegador usa?
Joshua Robison