java - "SSL23_GET_SERVER_HELLO:unknown protocol" After server upgrade -
recently build new windows 2012 server, tomcat 7.0.57 , java version "1.8.0_45".
i getting below error, when connecting client openssl. working ie.
new server:
openssl> s_client -connect xxx.xxx.xxx.xxx:443 loading 'screen' random state - done connected(00000130) 5724:error:140770fc:ssl routines:ssl23_get_server_hello:unknown protocol:.\ssl\s 23_clnt.c:601: openssl>
old server: (connecting fine)
openssl> s_client -connect yyy.yyy.yyy.yyy:443 loading 'screen' random state - done connected(00000114) depth=1 /c=xx/o=yyyy ca1 verify error:num=19:self signed certificate in certificate chain verify return:0 --- certificate chain ......... ssl handshake has read 3064 bytes , written 282 bytes --- new, tlsv1/sslv3, cipher edh-rsa-des-cbc3-sha server public key 2048 bit compression: none expansion: none ssl-session: protocol : tlsv1 cipher : edh-rsa-des-cbc3-sha .......
can 1 tell why behaving this??
new server: windows 2012 r2 / java version "1.8.0_45"/ tomcat 7.0.57
old server: windows 2003 / java version "1.6.0_31"/ tomcat 6.0
client: windows 7 / java 1.7.0_75
both java 1.8 , tomcat 7.0.57 , later disable sslv3
default, java 1.8 disabled sslv2hello
default, , openssl uses sslv2hello
, sslv3
default, there protocol mismatch , 2 sides can't complete ssl/tls handshake.
if want connect openssl s_client
, use -tls1
switch (or -tls1_1
, etc.) , should able connect.
if want re-enable sslv3
in tomcat, read configuration section of tomcat users' guide, sslenabledprotocols
, sslprotocol
attributes.
edit 2015-10-19 16:40 america/new_york
the above applies java-based connectors, use jvm's built-in jsse cryptography. if use native apr-base connector, openssl used. default behavior of openssl depend upon version have installed... more recent versions have been released, default protocols have been revised.
you can use tomcat's configuration enable protocol, long underlying library (jsse or openssl) supports protocol.
openssl use exact protocol-specific handshake if pick single supported protocol (e.g. tlsv1
-> tlsv1 handshake, tlsv1.1
-> tlsv1.1 handshake, etc.) use sslv2hello
if have more 1 protocol enabled (e.g. sslprotocol="tlsv1+tlsv1.1"
). documented under sslprotocol
attribute tomcat's http connector.
if unsure, specific enabled protocols (regardless of connector type), , test reputable test suite determine protocols being properly-supported.
Comments
Post a Comment