我似乎无法从我们的Ubuntu服务器通过SSL连接到特定服务器。在我的Mac上,在本地,它完美无瑕。
服务器地址:powerschool.spokaneschools.org
curl -v https://powerschool.spokaneschools.org
输出:
- 重建网址:https://powerschool.spokaneschools.org/
- 在DNS缓存中找不到主机名
- 尝试206.193.1.72 ......
- 连接到powerschool.spokaneschools.org(206.193.1.72)端口443(#0)
- 成功设置证书验证位置:
- CAfile:无CApath:/ etc / ssl / certs
- SSLv3,TLS握手,客户端问候(1):
- 与powerschool.spokaneschools.org:443相关的未知SSL协议错误
- 关闭连接0卷曲:(35)与powerschool.spokaneschools.org:443相关的未知SSL协议错误
openssl s_client -connect powerschool.spokaneschools.org:443
输出:
CONNECTED(00000003)
write:errno=104
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 0 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : SSLv3
Cipher : 0000
Session-ID:
Session-ID-ctx:
Master-Key:
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1466726411
Timeout : 7200 (sec)
Verify return code: 0 (ok)
---
我尝试在不同的SSL检查工具中检查网站,一切似乎都没问题(除了一些安全问题)。即使在该域中,我也没有问题连接到其他服务器。
OS
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 14.04.4 LTS
Release: 14.04
Codename: trusty
$ curl -V
curl 7.35.0 (x86_64-pc-linux-gnu) libcurl/7.35.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smtp smtps telnet tftp
Features: AsynchDNS GSS-Negotiate IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP
$ openssl version -a
OpenSSL 1.0.1f 6 Jan 2014
built on: Mon May 2 16:53:18 UTC 2016
platform: debian-amd64
options: bn(64,64) rc4(16x,int) des(idx,cisc,16,int) blowfish(idx)
compiler: cc -fPIC -DOPENSSL_PIC -DOPENSSL_THREADS -D_REENTRANT -DDSO_DLFCN -DHAVE_DLFCN_H -m64 -DL_ENDIAN -DTERMIO -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -D_FORTIFY_SOURCE=2 -Wl,-Bsymbolic-functions -Wl,-z,relro -Wa,--noexecstack -Wall -DMD32_REG_T=int -DOPENSSL_IA32_SSE2 -DOPENSSL_BN_ASM_MONT -DOPENSSL_BN_ASM_MONT5 -DOPENSSL_BN_ASM_GF2m -DSHA1_ASM -DSHA256_ASM -DSHA512_ASM -DMD5_ASM -DAES_ASM -DVPAES_ASM -DBSAES_ASM -DWHIRLPOOL_ASM -DGHASH_ASM
OPENSSLDIR: "/usr/lib/ssl"
对我来说很好。尝试在curl上使用“-k”选项,或者请提供发行版和卷曲版本(“curl -V”),以便我们更好地理解问题。
—
jehad 2016年
@jehad添加了更多信息,添加
—
Kuf
-k
无效。你有没有设法在ubuntu上运行它?
我正在使用与您完全相同的软件版本(ubuntu服务器14.04.4,运行curl 7.35.0,openssl 1.0.1f),我也尝试过运行LinuxMint 17.3的个人桌面计算机(也有相同的curl / openssl组件)。我的ubuntu服务器在虚拟机VM中运行。所以,我想它可能归结为你的基础架构......运行你的服务器是什么,它是云主机,本地机器?并且,是否有防火墙或代理?作为科学测试,您是否尝试过参考测试(例如“superuser.com:443”或“google.com:443”)?
—
jehad 2016年
@jehad没有代理,防火墙有正确的例外(AWS VPC),并且与所有其他服务器的SSL连接正常工作,甚至是该域中的其他服务器
—
Kuf
很难说下一步该做什么,因为一切都指向你特定环境中的问题; 如果所有公共服务器都可以访问,但不是这个,那么听起来确实AWS安全组中必定存在拼写错误。你知道如何tcpdump和wireshark吗?阅读下面的Steffen Ullrich的回答,他的分析是正确的,tcpdump可能有助于确认。其他基本实验... 1)尝试另一个VM / VPC(在您的本地笔记本电脑或AWS中),2)可能听起来很愚蠢,但忘了卷曲,你试过一个基本的ping(“ping powerschool.spokaneschools.org”)吗?
—
jehad 2016年