無法在 ubuntu 上連接到 https - “未知的 SSL 協定錯誤”

無法在 ubuntu 上連接到 https - “未知的 SSL 協定錯誤”

我似乎無法從 Ubuntu 伺服器透過 SSL 連接到特定伺服器。在本地,在我的 Mac 上,它運行完美。

伺服器位址:powerschool.spokaneschools.org

curl -v https://powerschool.spokaneschools.org輸出:

  • 重建 URL 為: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 時出現未知的 SSL 協定錯誤:443
  • 關閉連線 0curl: (35) 連接到 powerschool.spokaneschools.org 時出現未知的 SSL 協定錯誤:443

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 檢查工具檢查該站點,一切似乎都正常(除了一些安全問題)。即使在該網域內,我連接到其他伺服器也沒有問題。

作業系統

$ 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"

答案1

這對我有用,它也應該適用於你的curl/openssl版本。 errno 104 表示連線重置,因此我認為某些中間件(例如防火牆)導致了問題。從另一個網路進行檢查,您可以確保不涉及防火牆。

相關內容