如何使用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进行此操作。

Answers:


2

成功!!

我经历了一个名为dnsomatic的免费网络服务(由opendns的人员运行)

就像注册一个帐户并将opendns添加到您的服务一样简单。除此之外没有其他配置。

对于Android用户,wget的busybox版本落后了,并且没有使用用户名和密码的选项,因此我们将必须安装和使用cURL

可以在这里找到安装curl的指南

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

卷曲后,您可以简单地执行诸如更新您的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?
2013年

1
显然不是。我下载了.crt文件,说该文件为pem格式,并将其重命名为curlcacert.pem并卷曲了--cacert /path/to/curlcacert.pem site.com,但仍然收到证书错误。
Joshua Robison

1
下载它们后如何处理?我不能只使用浏览器使用的相同证书吗?
2013年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.