Jak uzyskać i używać certyfikatów z curl

14
  1. Wprowadzanie następującego polecenia

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

    Zwraca następujący błąd

     <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. po pobraniu cacert.crtpliku stąd

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

    Następnie nazwa cacert.crtpliku została zmieniona nacacert.pem

    Następnie spróbowałem:

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

    Ale dostań ten sam błąd.

  3. Następnie próbuję:

    curl  https://www.example.com 
    

    Otrzymuję ten błąd

    curl: (60) Problem z certyfikatem SSL: nie można uzyskać certyfikatu lokalnego wystawcy Więcej szczegółów tutaj: http://curl.haxx.se/docs/sslcerts.html

    curl domyślnie przeprowadza weryfikację certyfikatu SSL, używając „pakietu” kluczy publicznych urzędu certyfikacji (CA). Jeśli domyślny plik pakietu nie jest odpowiedni, możesz określić plik alternatywny, używając opcji --cacert.
    Jeśli ten serwer HTTPS używa certyfikatu podpisanego przez urząd certyfikacji reprezentowany w pakiecie, weryfikacja certyfikatu prawdopodobnie nie powiodła się z powodu problemu z certyfikatem (może on wygasnąć lub nazwa może nie pasować do nazwy domeny w adresie URL).
    Jeśli chcesz wyłączyć weryfikację certyfikatu przez curl, użyj opcji -k (lub --insecure)

  4. Więc spróbowałem z -k

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

    Ale oczywiście dostaję błąd

    Badauth

Zgaduję, że robię coś złego z plikiem certyfikatu, ale nie wiem, skąd wziąć plik certyfikatu ani co z nim zrobić, gdy go już mam.

Oczywiście nie mam problemu z zalogowaniem się za pomocą przeglądarki, ale chciałbym zautomatyzować ten proces za pomocą wiersza polecenia, aby móc to zrobić za pomocą Tasker na tablecie z Androidem przez WiFi.

Joshua Robison
źródło

Odpowiedzi:

2

SUKCES!!

Przeszedłem przez bezpłatny serwis internetowy o nazwie dnsomatic (prowadzony przez ludzi z opendns)

To tak proste, jak założenie konta i dodanie opendns do swoich usług. Żadna konfiguracja poza tym.

Dla użytkowników Androida zapracowane wersje wget są daleko w tyle i nie mają opcji używania nazw użytkowników i haseł, więc będziemy musieli zainstalować i używać cURL

Przewodnik po instalacji curl można znaleźć tutaj

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

Po zwinięciu możesz po prostu robić rzeczy takie jak aktualizowanie opendns ip

curl -u opendnsusername:password http://updates.dnsomatic.com/nic/update?hostname=opendnshostname
Joshua Robison
źródło
Nadal nie wiem, jak uzyskać i używać certyfikatów z curl, ale mój ostateczny cel został osiągnięty. Może ktoś może pomóc z bitem certyfikatu.
Joshua Robison
1

Możesz pobrać certyfikaty główne cacert tutaj: http://www.cacert.org/index.php?id=3


źródło
1
Czy po prostu wybieram podstawowy plik .crt formatu pem i zmieniam jego nazwę na .pem?
Joshua Robison
1
Najwyraźniej nie. Pobrałem plik .crt, który mówi, że jest w formacie pem i przemianowałem go na curlcacert.pem, i zrobiłem curl --cacert /path/to/curlcacert.pem site.com, ale wciąż dostaję błędy certyfikatu.
Joshua Robison
1
Co mam z nimi zrobić po ich pobraniu? Czy nie mogę po prostu użyć tego samego certyfikatu, którego używa moja przeglądarka?
Joshua Robison