如何使用 curl 获取和使用证书

如何使用 curl 获取和使用证书
  1. 输入以下命令

    curl -k [email protected]: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 protected]: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 执行此操作。

答案1

成功!!

我尝试了一个名为 dnsomatic 的免费网络服务(由 opendns 的人员运营)

只需注册一个账户并将 opendns 添加到您的服务即可。除此之外无需任何配置。

对于 Android 用户,wget 的 busybox 版本已经落后,并且没有使用用户名和密码的选项,因此我们必须安装并使用 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

答案2

您可以从这里下载 cacert 根证书:http://www.cacert.org/index.php?id=3

相关内容