Fea*_*aro 6 git iis https openssl
我们正在通过https运行git服务器并且连接没有任何问题,因为我们都使用visual studio这样做.现在有人想使用标准的git bash,它无法连接以下错误输出.
fatal: unable to access 'https://server/Repo.git/': Unknown SSL protocol error in connection to server:443
Run Code Online (Sandbox Code Playgroud)
我尝试了一些不同的密码套件,没有任何效果.然后它告诉我,git可能还不支持ECDSA证书.所以我用RSA交换了ECDSA证书.这也行不通.
然后我尝试使用以下命令连接OpenSSL s_client:
OpenSSL> s_client -connect server:443
Run Code Online (Sandbox Code Playgroud)
这是运行命令的输出:
CONNECTED(0000018C)
write:errno=10054
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 307 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
---
Run Code Online (Sandbox Code Playgroud)
我搜索谷歌的错误号码10054,发现它意味着连接被拒绝.我们使用IIS 8.5为git服务器提供https端点.我可以通过所有webbrowsers连接到Web环境,我们可以通过visual studio git界面使用git服务器.所以我认为这不是防火墙问题.我想知道以前是否有人遇到过这个问题,是否可以帮助我们在这里?
Ste*_*ich 12
10054没有连接被拒绝,但连接被同行重置.这意味着,TCP连接已成功建立(s_client表示已连接),但是当从客户端向服务器发送更多数据时,服务器关闭连接而不读取所有数据(并发回TCP RST).
虽然这可能是防火墙问题,但它也可能表明服务器配置存在问题,即服务器接受客户端但由于配置无效而无法继续.此类无效配置可能是缺少所请求数据的权限,没有可用私钥的证书或其他.我建议您查看服务器日志以获取更多信息.
我还看到了TCP RST与服务器,负载平衡器或防火墙,它们不了解当前的TLS版本,只是关闭连接.浏览器通过使用较低的TLS版本透明地重试来解决此问题.您可以尝试openssl s_client -ssl3对这个服务器起作用并且您收到证书.
Fea*_*aro 10
确认您使用的是TLS 1.0或更高版本.有些服务器需要TLS 1.2.如果您不确定您的服务器是否支持TLS 1.2,请查看上面的Steffen Ulrich的答案并首先尝试.
如果这没有帮助,那么检查端点是否需要SNI.如果是这种情况,这可能是问题所在.如果调用s_client命令和servername设置您想联系应该工作的ServerName参数.
示例基本命令:
s_client -connect example.com:443 -tls1 -servername example.com
Run Code Online (Sandbox Code Playgroud)
您可以s_client在s_client手册页中找到选项.
| 归档时间: |
|
| 查看次数: |
32195 次 |
| 最近记录: |