输入以下命令
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
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
但出现同样的错误。
然后尝试:
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)选项所以我尝试了
-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