如何在WireMock中成功获取HTTPS端点代理?

我正在编写一个内部使用WireMock的HTTP记录回放代理,并且在记录HTTPS目标时遇到问题。 HTTP站点工作正常。

以下是我为未加密的网站设置WireMock代理的方法:

java \ -jar /var/proximate/wiremock-standalone-2.4.1.jar \ --port 9000 \ --proxy-all http://ilovephp.jondh.me.uk \ --record-mappings \ --root-dir /remote/experiment/record/http 

然后,我可以使用此命令在该站点上记录任何内容:

 wget -e use_proxy=yes -e http_proxy=proximate-proxy:9000 \ http://ilovephp.jondh.me.uk/en/tutorial/make-your-own-blog 

在短时间内,我将获得一些自动创建的映射:

 / # ls -R /remote/experiment/record/http /remote/experiment/record/http: __files mappings /remote/experiment/record/http/__files: body-tutorial-make-your-own-blog-tWrNm.txt /remote/experiment/record/http/mappings: mapping-tutorial-make-your-own-blog-tWrNm.json 

这是一回事,但在SSL网站上。 代理优先:

 java \ -jar /var/proximate/wiremock-standalone-2.4.1.jar \ --port 9000 \ --proxy-all https://www.rottentomatoes.com/ \ --record-mappings \ --root-dir /remote/experiment/record/https \ --verbose 

这是获取:

 wget -e use_proxy=yes -e http_proxy=proximate-proxy:9000 \ https://www.rottentomatoes.com/ 

WireMock的结果是创建了内部缓存目录,但它们不包含任何内容:

 / # ls -R /remote/experiment/record/https /remote/experiment/record/https: __files mappings /remote/experiment/record/https/__files: /remote/experiment/record/https/mappings: 

我在Docker容器中使用Alpine 3.4上的WM 2.4.1。 我是否需要使用某些https特定的命令行开关来实现此function?

更新

我暂时感到振奋,看到最近发布的2.5.0最近合并了https-bind-address-bug ,听起来非常相关。 我试过这个版本,但不幸的是没有区别。

这部分解决了 – 我的主要错误是为WireMock和客户端分别设置了HTTPS连接的代理地址。 我现在正在使用:

 java \ -jar /var/proximate/wiremock-standalone-2.4.1.jar \ --port 9000 \ --https-port 9050 \ --proxy-all https://www.rottentomatoes.com/ \ --record-mappings \ --root-dir /remote/experiment/record/https \ --verbose \ --print-all-network-traffic 

我添加了--print-all-network-traffic所以我可以看到是否有任何HTTPS流量到达代理(现在是)。

这是新的客户端命令,带有新的代理指令:

 wget -e use_proxy=yes -e http_proxy=proximate-proxy:9000 \ -e https_proxy=proximate-proxy:9050 \ --verbose \ --user-agent="Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:50.0) Gecko/20100101 Firefox/50.0" \ https://www.rottentomatoes.com/ 

但是,现在实际上正在使用代理,看起来操作未成功完成。 我尝试过其他加密网站并收到同样模糊的错误:

 Resolving proximate-proxy... 172.18.0.2 Connecting to proximate-proxy|172.18.0.2|:9050... connected. Failed reading proxy response: No error information Retrying. --2017-01-26 09:20:18-- (try: 2) https://www.rottentomatoes.com/ Connecting to proximate-proxy|172.18.0.2|:9050... connected. Failed reading proxy response: No error information Retrying. --2017-01-26 09:20:20-- (try: 3) https://www.rottentomatoes.com/ Connecting to proximate-proxy|172.18.0.2|:9050... connected. Failed reading proxy response: No error information Retrying. ^C 

我已经替换了用户代理,以防有一些基于标准“wget”字符串的第三方拒绝,但这似乎也不会影响事情。

我会问一个关于这个的新问题,以缩小这是WireMock还是Wget问题。