Ssl 带“-k”和不带“-k”的卷曲`

Ssl 带“-k”和不带“-k”的卷曲`,ssl,curl,nginx,haproxy,insecure-connection,Ssl,Curl,Nginx,Haproxy,Insecure Connection,当我在不使用-k的情况下使用curl打开url时,我的请求已通过,我可以看到预期的结果 $ 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_S

当我在不使用
-k
的情况下使用curl打开url时,我的请求已通过,我可以看到预期的结果

$ 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
请求流:

  • SSL终止正在HAPROXY计算机上发生
  • HAPROXY将向nginx转发请求

  • 对于此类问题的故障排除,以下选项可能很有用:

    curl -k -I --resolve www.example.com:80:192.0.2.1 https://www.example.com/
    
    为特定主机和端口对提供自定义地址。使用 这样,您可以使curl请求使用指定的地址和 防止使用其他正常解析的地址。考虑 它是命令行上提供的一种/etc/hosts替代方案。这个 端口号应为用于特定协议的编号 主机将用于。这意味着您需要多个条目 为同一主机但不同端口提供地址

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

    要尝试的一个故障排除步骤:更新
    curl
    或,然后重试。首先,一些
    curl
    版本(例如MacOS)应该不会为
    -k
    /
    --unsecure
    发送SNI

    如果这是您遇到的问题,并且您无法替换
    curl
    ,那么这基本上涉及到创建您自己的CA、私钥和CSR,并对haproxy进行调整

    设置后,使用
    --cacert
    --capath
    代替指定
    -k
    /
    --unsecure

    curl https://example.com/api/endpoint --cacert certs/servers/example.com/chain.pem
    curl https://example.com/api/endpoint --capath certs/ca
    
    如果您遇到的问题是由于SNI引起的,您还可以使用以下站点进行故障排除:


    否则,如果不是SNI,那么我记得在某个地方看到,
    -k
    /
    --unsecure
    可能无法像预期的那样使用某些代理配置。因此,如果您正在通过客户端的某种代理,并且您可以在不使用代理的情况下直接进行测试,那么这可能值得探索。

    谢谢sideshowbarker。是的,这是因为我使用的卷发中的SNI错误。我从这本书中发现了这个mac curl bug
    curl https://example.com/api/endpoint --cacert certs/servers/example.com/chain.pem
    curl https://example.com/api/endpoint --capath certs/ca
    
    curl --insecure https://sni.velox.ch/