【问题标题】:Authenticating to SSL enabled website from terminal从终端验证启用 SSL 的网站
【发布时间】:2014-01-11 17:36:25
【问题描述】:

我有一个启用 SSL 的网页 mypage/login.html。这个页面用户和路径。我想发布我的 UserId 并从终端传递。我不知道它是否可能使用 TELNET。 我尝试使用 cURL,阅读它。但到目前为止,我找到了任何解决方案。有head可以使用curl编写php脚本登录。任何身体都有帮助。基本上我想要一个脚本,它将在系统启动期间在用户命令上运行。主要是发布我的用户 ID 并从我的终端传递到该网络服务器,因此它对我进行身份验证并允许我进一步。有人可以帮忙吗?

【问题讨论】:

  • SSL 是这里最小的问题,它将完全透明地工作。该站点使用哪种身份验证?是 HTTP 身份验证吗?是登录表单吗?

标签: php bash shell curl ssl


【解决方案1】:

在我看来是这样的

curl -d userID=foo -d pass=bar https://10.0.0.1/letmein.php

应该做你想做的。

来自curl(1) man page

-d, --data <data>

(HTTP) 将 POST 请求中的指定数据发送到 HTTP 服务器,就像浏览器在用户填写 HTML 表单并按下提交按钮时所做的一样。

如果您需要 cURL 为您进行 URL 编码,请尝试使用 --data-urlencode 而不是 -d

【讨论】:

  • 非常感谢您的回答,在第一种情况下,用户名和密码是接受我的用户名和密码的 html 变量的名称?我认为 openssl 只创建一个 telnet 会话.. 它允许 POST 到网络服务器吗??
  • 对 ssl 站点使用 CURL 是另一个问题。现在正如你所说,这应该让我登录,但它确实发生 curl -d username=(ur username) -d password=(ur password) @ 987654323@它给了我登录页面的源代码。在 ssl 站点的情况下,它要求提供证书,我确实提供了证书,所以它说主题名称与主机名不同,我执行 curl -u 并发布 unname n 密码。它给出了登录页面的源代码
【解决方案2】:

您可以为此使用命令行程序openssl。它就像 telnet 一样工作:

~$ openssl s_client -connect www.google.com:443
CONNECTED(00000003)
depth=2 C = US, O = GeoTrust Inc., CN = GeoTrust Global CA
... secure connection details, certificates, etc ...
---
GET /
HTTP/1.0 302 Found
Location: https://www.google.nl/?gws_rd=cr&ei=CoLRUpfVG8a50QW59oG4CA
... rest of HTTP data / document ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-05-16
    • 1970-01-01
    • 2011-03-02
    • 1970-01-01
    • 2014-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多