首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >卷曲带‘-k’而不带‘-k’

卷曲带‘-k’而不带‘-k’
EN

Stack Overflow用户
提问于 2017-01-26 01:25:49
回答 1查看 13.5K关注 0票数 5

当我使用没有curl -k打开一个url时,我的请求正在传递,我能够看到预期的结果。

代码语言:javascript
复制
$ curl -vvv https://MYHOSTNAME/wex/archive.info -A SUKU$RANDOM
*   Trying 10.38.202.192...
* Connected to MYHOSTNAME (10.38.202.192) port 443 (#0)
* TLS 1.2 connection using TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
* Server certificate: *.MYCNAME
* Server certificate: ProdIssuedCA1
* Server certificate: InternalRootCA
> GET /wex/archive.info HTTP/1.1
> Host: MYHOSTNAME
> User-Agent: SUKU19816
> Accept: */*
> 
< HTTP/1.1 200 OK
< Server: nginx/1.10.2
< Date: Thu, 26 Jan 2017 01:08:40 GMT
< Content-Type: text/html;charset=ISO-8859-1
< Content-Length: 19
< Connection: keep-alive
< Set-Cookie: JSESSIONID=1XXXXXXXX3E58093E816FE62D81; Path=/wex/; HttpOnly
< X-WebProxy-Id: 220ffb81872a
< 




status=Running
* Connection #0 to host MYHOSTNAME left intact

但当我和 -k打开同一个url -k时,它就失败了。对我来说,这没有任何意义,因为据我理解,-k的目的只是跳过证书验证。

代码语言:javascript
复制
$ curl -vvv https://MYHOSTNAME/wex/archive.info -A SUKU$RANDOM -k
*   Trying 10.38.202.192...
* Connected to MYHOSTNAME (10.38.202.192) port 443 (#0)
* Server aborted the SSL handshake
* Closing connection 0
curl: (35) Server aborted the SSL handshake

请求流:

  1. SSL终止发生在HAPROXY机器上
  2. HAPROXY将向nginx转发请求
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-26 06:20:55

对于解决这类问题,选项可能很有用:

代码语言:javascript
复制
curl -k -I --resolve www.example.com:80:192.0.2.1 https://www.example.com/

为特定主机和端口对提供自定义地址。使用此方法,您可以使curl请求使用指定的地址,并防止使用通常解析的地址。将其视为命令行中提供的/etc/host选项。端口号应该是主机将用于特定协议的端口号。这意味着,如果要为同一主机提供地址,但端口不同,则需要几个条目。

特别是如果您试图从站点获取的站点使用SNI:在这种情况下,您可以使用--resolve选项来指定在TLS客户机hello中使用的服务器名称。

要尝试的一个疑难解答步骤:更新curl从源代码中自己编译它并重试。首先,一些curl版本(例如,MacOS)应该不会将SNI发送给-k/--insecure

如果这是您遇到的问题,并且您无法替换curl,那么有个解决办法你可以用本质上涉及创建您自己的CA、私钥和CSR,并对您的haproxy进行调整。

设置它之后,就可以使用-k--capath来代替指定--cacert /--capath

代码语言:javascript
复制
curl https://example.com/api/endpoint --cacert certs/servers/example.com/chain.pem
curl https://example.com/api/endpoint --capath certs/ca

如果您碰到的问题是由于SNI造成的,您也可以使用https://sni.velox.ch/这样的站点来解决它。

代码语言:javascript
复制
curl --insecure https://sni.velox.ch/

否则,如果不是SNI,那么我记得在某个地方,-k/--insecure可能不像某些代理配置所期望的那样工作。因此,如果您正在从客户端通过某种类型的代理,并且可以在没有代理的情况下直接进行测试,那么这可能是值得探索的。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41864571

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档