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はデフォルトで、認証局(CA)公開鍵(CA証明書)の「バンドル」を使用してSSL証明書の検証を実行します。デフォルトのバンドルファイルでは不十分な場合は、-cacertオプションを使用して代替ファイルを指定できます。
    このHTTPSサーバーがバンドルで表されるCAによって署名された証明書を使用する場合、証明書の問題が原因で証明書の検証が失敗した可能性があります(有効期限が切れているか、URLのドメイン名と一致しない可能性があります)。
    curlによる証明書の検証を無効にする場合は、-k(または--insecure)オプションを使用します

  4. だから私は試した -k

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

    しかし、もちろんエラーが発生します

    Badauth

私は証明書ファイルで何か間違ったことをしていると推測していますが、証明書ファイルをどこで入手するか、それを取得したらどうするかわかりません。

もちろん、ブラウザーを使用してログインするのに問題はありませんが、コマンドラインを使用してプロセスを自動化し、WiFiを介してAndroidタブレットのtaskerでこれを実行できるようにします。

回答:


2

成功!!

私はdnsomaticと呼ばれる無料のWebサービスを利用しました(opendnsの人々が運営)

アカウントにサインアップし、opendnをサービスに追加するのと同じくらい簡単です。それ以上の設定はありません。

Androidユーザーの場合、busyboxバージョンのwgetはかなり遅れており、ユーザー名とパスワードを使用するオプションがないため、cURLをインストールして使用する必要があります。

curlをインストールするためのガイドはこちらにあります

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

curlを取得したら、opendns IPを更新するなどの操作を行うことができます。

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
どうやら。pem形式の.crtファイルをダウンロードし、curlcacert.pemに名前を変更し、curl --cacert /path/to/curlcacert.pem site.comを実行しましたが、まだ証明書エラーが発生しました。
ジョシュアロビソン

1
ダウンロードしたらどうしますか?ブラウザで使用しているのと同じ証明書を使用することはできませんか?
ジョシュアロビソン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.