Ok, I enabled SSL. I have attached the trace here.

You will notice that the server is sending an expired cert with a CommonName 
that does not match. It does this because the client is not supporting SNI. If 
the client supported SNI in the request, it would get back a valid cert. I have 
verified this by using openssl.

$ openssl s_client -connect thecascadeteam.com:443 -CApath /etc/ssl/certs/ 
-verify 3 </dev/null
vs
$ openssl s_client -servername thecascadeteam.com -connect 
thecascadeteam.com:443 -CApath /etc/ssl/certs/ -verify 3 </dev/null


Here is the java ssl trace...

--
2014-09-16 14:11:35,534 DEBUG 
[org.apache.http.client.protocol.RequestAddCookies] CookieSpec selected: 
best-match
2014-09-16 14:11:35,542 DEBUG 
[org.apache.http.client.protocol.RequestAuthCache] Auth cache not set in the 
context
2014-09-16 14:11:35,543 DEBUG 
[org.apache.http.impl.conn.PoolingHttpClientConnectionManager] Connection 
request: [route: {s}->https://thecascadeteam.com:443][total kept alive: 0; 
route allocated: 0 of 2; t
otal allocated: 0 of 20]
2014-09-16 14:11:35,555 DEBUG 
[org.apache.http.impl.conn.PoolingHttpClientConnectionManager] Connection 
leased: [id: 0][route: {s}->https://thecascadeteam.com:443][total kept alive: 
0; route allocated: 1 o
f 2; total allocated: 1 of 20]
2014-09-16 14:11:35,557 DEBUG [org.apache.http.impl.execchain.MainClientExec] 
Opening connection {s}->https://thecascadeteam.com:443
2014-09-16 14:11:35,561 DEBUG 
[org.apache.http.impl.conn.HttpClientConnectionOperator] Connecting to 
thecascadeteam.com/67.192.9.195:443
%% No cached client session
*** ClientHello, TLSv1
RandomCookie:  GMT: 1410836103 bytes = { 53, 159, 40, 146, 236, 242, 175, 2, 
166, 3, 9, 55, 226, 31, 234, 169, 19, 210, 40, 218, 171, 35, 143, 184, 100, 
158, 235, 34 }
Session ID:  {}
Cipher Suites: [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, 
SSL_RSA_WITH_DES_CBC_SHA, SSL_DHE_RSA_WITH_DES_CBC_SHA, 
SSL_DHE_DSS_WITH_DES_CBC_SHA, SSL_RSA_EXPORT_WITH_RC4_40_MD5, 
SSL_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, 
SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA]
Compression Methods:  { 0 }
***
main, WRITE: TLSv1 Handshake, length = 73
main, WRITE: SSLv2 client hello message, length = 98
main, READ: TLSv1 Handshake, length = 74
*** ServerHello, TLSv1
RandomCookie:  GMT: 1410836327 bytes = { 198, 77, 174, 100, 73, 26, 132, 180, 
245, 186, 47, 22, 55, 16, 198, 23, 59, 170, 128, 5, 218, 201, 155, 25, 251, 
144, 121, 72 }
Session ID:  {22, 217, 38, 43, 7, 55, 250, 251, 55, 24, 226, 93, 181, 78, 236, 
75, 124, 171, 133, 232, 25, 243, 11, 17, 91, 17, 188, 189, 57, 110, 141, 7}
Cipher Suite: SSL_RSA_WITH_RC4_128_MD5
Compression Method: 0
***
%% Created:  [Session-1, SSL_RSA_WITH_RC4_128_MD5]
** SSL_RSA_WITH_RC4_128_MD5
main, READ: TLSv1 Handshake, length = 961
*** Certificate chain
chain [0] = [
[
  Version: V1
  Subject: [email protected], CN=Parallels Panel, OU=Parallels 
Panel, O=Parallels, L=Herndon, ST=Virginia, C=US
  Signature Algorithm: SHA1withRSA, OID = 1.2.840.113549.1.1.5

  Key:  Sun RSA public key, 2048 bits
  modulus: 
22994848279003529171322105433938759692822368732063903858368610748237449317173695122042003543720092746063068746474747884306012432118319515853223774859373616146120409956200887652475628189917992056313693430544210353036408390857370759005878081225289165354730634374570719587192535639763296254739754725160784306213910726454521387775388272582309040417978045387494996137933929788285594968884535129242018182621780947121544427423338488946335683351244045300489225415934921014022147851916526797101050369604962368275336285529959135638317876855822130673248503921048649567555227883256430711156119763110383403686414663712772558427109
  public exponent: 65537
  Validity: [From: Thu Apr 04 13:53:59 PDT 2013,
               To: Fri Apr 04 13:53:59 PDT 2014]
  Issuer: [email protected], CN=Parallels Panel, OU=Parallels 
Panel, O=Parallels, L=Herndon, ST=Virginia, C=US
  SerialNumber: [    515de867]

]
  Algorithm: [SHA1withRSA]
  Signature:
--


On Tuesday, September 16, 2014 2:08 AM, Oleg Kalnichevski <[email protected]> 
wrote:
 


On Mon, 2014-09-15 at 14:36 -0700, Feroze Daud wrote:

> hi!
> 
> We are using httpcomponents v 4.3.5. Last year there was a bug on the topic 
> of supporting SNI on JDK7, and a patch was made in late december. The ship 
> vehicle for the patch was 4.3.2.
> 
> However, I cannot find any example that shows how to enable this for the http 
> client.
> 
> Please point me to some info. I can volunteer to fix the documentation with 
> the details so that it might help others in the future.
> 
> Thanks.

Feroze,

SNI should work completely transparently when running on Java 1.7 or
newer. No configuration is required. If for whatever reason SSL
handshake with SNI enabled server fails you should be able to find out
why (and whether or not the SNI extension was properly employed) by
turning on SSL debug logging as described here

http://docs.oracle.com/javase/1.5.0/docs/guide/security/jsse/ReadDebug.html
http://docs.oracle.com/javase/7/docs/technotes/guides/security/jsse/JSSERefGuide.html#Debug
 

Oleg

Reply via email to