Как получить и использовать сертификаты с curl


14
  1. Ввод следующей команды

    curl -k email@mail.com:password https://www.example.com 
    

    Возвращает следующую ошибку

     <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. после загрузки cacert.crtфайла отсюда

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

    Затем переименовал cacert.crtфайл вcacert.pem

    Потом попробовал:

    curl --cacert /path/to/cacert.pem email@mail.com:password https://www.example.com 
    

    Но получите ту же ошибку.

  3. Затем пытается:

    curl  https://www.example.com 
    

    Я получаю эту ошибку

    curl: (60) Проблема с сертификатом SSL: невозможно получить сертификат локального эмитента. Более подробная информация здесь: http://curl.haxx.se/docs/sslcerts.html

    curl выполняет проверку сертификата SSL по умолчанию, используя «пакет» открытых ключей центра сертификации (CA certs). Если файл пакета по умолчанию не подходит, вы можете указать альтернативный файл с помощью параметра --cacert.
    Если этот HTTPS-сервер использует сертификат, подписанный ЦС, представленным в комплекте, проверка сертификата, вероятно, не удалась из-за проблемы с сертификатом (возможно, срок его действия истек или имя может не совпадать с именем домена в URL-адресе).
    Если вы хотите отключить проверку сертификата с помощью curl, используйте параметр -k (или --insecure)

  4. Итак, я попробовал с -k

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

    Но, конечно, получить ошибку

    Badauth

Я предполагаю, что я делаю что-то не так с файлом сертификата, но я не знаю, где взять файл сертификата или что с ним делать, если он у меня есть.

Конечно, у меня нет проблем с входом в систему с помощью браузера, но я бы хотел автоматизировать процесс с помощью командной строки, чтобы я мог сделать это с помощью Tasker на своем планшете Android через WiFi.

Ответы:


2

УСПЕХ !!

Я прошел через бесплатный веб-сервис dnsomatic (им руководят люди из opendns)

Это так же просто, как зарегистрировать аккаунт и добавить opendns к вашим услугам. Никакой конфигурации за пределами этого.

Для пользователей Android версии wget заняты далеко позади и не имеют возможности использовать имена пользователей и пароли, поэтому нам придется установить и использовать cURL

Руководство по установке curl можно найти здесь

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

После того, как у вас есть curl, вы можете просто сделать такие вещи, как обновление ip opendns

curl -u opendnsusername:password http://updates.dnsomatic.com/nic/update?hostname=opendnshostname

Я до сих пор не могу понять, как получить и использовать сертификаты с помощью curl, но моя конечная цель достигнута. Может быть, кто-то может помочь с битом сертификата.
Джошуа Робисон

1

Вы можете скачать корневые сертификаты cacert здесь: http://www.cacert.org/index.php?id=3


1
Должен ли я просто выбрать базовый формат pem .crt и изменить его имя на .pem?
Джошуа Робисон

1
Очевидно нет. Я скачал файл .crt, который говорит, что он в формате pem, и переименовал его в curlcacert.pem, и сделал curl --cacert /path/to/curlcacert.pem site.com, но все еще получаю сертификаты об ошибках.
Джошуа Робисон

1
Что мне делать с ними после загрузки? Разве я не могу использовать тот же сертификат, который использует мой браузер?
Джошуа Робисон
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.