通过代理获得卷曲

时间:2017-11-17 13:55:07

标签: curl proxy

使用curl来探索由反向代理和https协议的两种用法组成的API 以下是我对

有疑问的一次尝试
C:\WINDOWS\system32>curl -k --digest -u admin -x https://192.168.102.102:443 -L https://192.168.102.102:4242/quarters/reports -v  
Enter host password for user 'admin':  
*   Trying 192.168.102.102...  
* Connected to 192.168.102.102 (192.168.102.102) port 443 (#0)  
* Establish HTTP proxy tunnel to 192.168.102.102:4242  
* Server auth using Digest with user 'admin'  
> CONNECT 192.168.102.102:4242 HTTP/1.1  
> Host: 192.168.102.102:4242  
> User-Agent: curl/7.46.0  
> Proxy-Connection: Keep-Alive
>
* Proxy CONNECT aborted  
* Connection #0 to host 192.168.102.102 left intact  
curl: (56) Proxy CONNECT aborted

这适用于FireFox,如果我输入网址 https://192.168.102.102/quarters/reports 我以json格式收回所有报告。

关于我的问题:
1.第一部分的输出是否符合预期?
    连接到代理服务器然后隧道到应用服务器?
2.连接中止的可能原因是什么?
3.它表示#0连接保持不变,与代理连接?
4.身份验证是应用于两个URL还是仅应用于一个?
5.我怎样才能一路走下去并返回资源?

更新:
尝试了上面没有认证,基本和消化的结果相同。

更新2: 如果命令更改为: curl -k --digest -u admin https://192.168.102.102:443 -L https://192.168.102.102:4242/quarters/reports -v 我明白了:

Enter host password for user 'admin':
* Rebuilt URL to: https://192.168.102.102:443/
*   Trying 192.168.102.102...
* Connected to 192.168.102.102 (192.168.102.102) port 443 (#0)
* ALPN, offering http/1.1
* Cipher selection: ALL:!EXPORT:!EXPORT40:!EXPORT56:!aNULL:!LOW:!RC4:@STRENGTH
Deleted to save space
* SSL connection using TLSv1.2 / ECDHE-RSA-AES128-GCM-SHA256
* ALPN, server accepted to use http/1.1
* Server certificate:
Deleted to save space
* SSL certificate verify result: self signed certificate (18), continuing anyway.
* Server auth using Digest with user 'admin'
> GET / HTTP/1.1
> Host: 192.168.102.102
> User-Agent: curl/7.46.0
> Accept: */*

随后在正文中使用登录页面进行200响应 然后301和401和401

2 个答案:

答案 0 :(得分:0)

如果我在192.168.102.102机器上并输入:   curl -k --digest -u admin:password https://192.168.102.102:443 -L   https://192.168.102.102/quarters/reports/ -trace-ascii   我得到主页/登录页面的html和json响应。   如果我在Windows 10客户端上并在命令中输入相同的命令   没有" -L"回报的最后部分是:   " See Other。   使用" -L"获得401状态。   这是一个部分答案,不知道为什么它在服务器上工作但不在   客户端

更新语法" curl -k --digest -u admin:password -L https://192.168.102.102/quarters/reports仅给我json响应

答案 1 :(得分:0)

一旦我更正了Windows 10上的curl安装,它就会在Linux上给出与curl相同的响应。这是最后的答案。