JBoss altında çalışan Java'da yazılmış bir REST API'm var. Son zamanlarda JVM'yi 1,6'dan 1,7'ye güncelledik. Bu, yalnızca bağlanan Python istemcilerimizle ilgili sorunlara neden olmaya başladı. Zaman zaman, Python müşterileri el sıkışmalarına maruz kalıyor.Aralıklı "sslv3 uyarı anlaşması hatası" Python altında
import httplib2
for i in range(1,500):
print i
response, content = httplib2.Http(disable_ssl_certificate_validation=True).request('https://server.com:8443',)
aşağıdaki çıktıyı verin: Sorunu yeniden üreten çok basit bir test yazdı
.
.
.
64
65
66
67
Traceback (most recent call last):
File "api_test/test.py", line 6, in <module>
response, content = httplib2.Http(disable_ssl_certificate_validation=True).request('https://server.com:8443/rest/solidtumor/2012/id/50d3216c092c8554b8b9f384?glossary=true&api_key=APIKEY',)
File "/home/hostovic/api_test/httplib2/__init__.py", line 1445, in request
(response, content) = self._request(conn, authority, uri, request_uri, method, body, headers, redirections, cachekey)
File "/home/hostovic/api_test/httplib2/__init__.py", line 1197, in _request
(response, content) = self._conn_request(conn, request_uri, method, body, headers)
File "/home/hostovic/api_test/httplib2/__init__.py", line 1133, in _conn_request
conn.connect()
File "/home/hostovic/api_test/httplib2/__init__.py", line 914, in connect
raise SSLHandshakeError(e)
httplib2.SSLHandshakeError: [Errno 1] _ssl.c:490: error:14094410:SSL routines:SSL3_READ_BYTES:sslv3 alert handshake failure
67 çağrı yoluyla bu kaçak başarısız, ama farklı zamanlarda testtir her zaman başarısız koşmak.
Diğer istemcilerimiz (Java, Groovy ve Ruby) sorunsuz çalışırlar.
JVM'yi 1.6'ya geri yüklerseniz, hatalar durur.
kullanıyorum bir Openssl kontrolü yaptım:openssl s_client -connect server.com:8443
ve bu döndürdü: Doğru görünüyor
New, TLSv1/SSLv3, Cipher is EDH-RSA-DES-CBC3-SHA
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
SSL-Session:
Protocol : TLSv1.2
Cipher : EDH-RSA-DES-CBC3-SHA
Session-ID: 50E748EA341BB433EEBC7386C606313C2B8B86360ED71DC8F3B0A14A1579D91B
Session-ID-ctx:
Master-Key: 1007AC489D60FE2D818F71A5A6873D5BBF5B1770BEC31CDBF29D0562DB0D30A33D9EBBA8AD211B8E24B23494B20A6223
Key-Arg : None
Krb5 Principal: None
PSK identity: None
PSK identity hint: None
Start Time: 1357334762
Timeout : 300 (sec)
Verify return code: 0 (ok)
, ama emin değilim. Her çağrıda başarısız olsaydı, bu bir şey olurdu, ama sadece rastgele bir kez başarısız olmak gerçekten garip. Bunu gören var mı?
Tüm DHE şifrelerini mi yoksa sadece listelediğinizi mi sildiniz? Zayıf şifrelere destek hakkında şikayette bulunan güvenlik taramaları nedeniyle şifreler listemi kısaltmıştım.İşte şu anda kullanıyorum listesi: SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA –
Sadece DHE şifrelere kaldırıldı ve el sıkışma hataları gitti. Bir ton teşekkürler. Bunu bulacağından emin değilim! –