2015-12-30 146 views
1

有人可以帮助我发现,如果我的SSLHandshake有什么问题吗?Java SSL错误403禁止

我有一个Java客户端应用程序(使用Spring WS安全)试图将数据发送到服务器(而不是在我的控制)和我已经设置与证书以下

  1. 客户信任存储从服务器
  2. 使用我的“PrivateKeyEntry”证书的密钥库&链+来自服务器的证书(可能没必要)
  3. 服务器已导入与#2关联的公钥。

在我的调试SSL握手日志(某些部分缩写)下面,我似乎无法找到任何错误..这是服务器端需要查看的东西吗? (我不知道,他们不知道,这样的原因,我问这里)

=====

... 
loading bunch of truststore certs.. 
trigger seeding of SecureRandom 
done seeding SecureRandom 

%% No cached client session 
*** ClientHello, TLSv1 
RandomCookie: GMT: 1434719494 bytes = { 99, 87, 115, 11, 185, 203, 150, 154, 249, 227, 214, 17, 102, 68, 224, 171, 37, 125, 178, 169, 216, 111, 32, 118, 22, 231, 1, 135 } 
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 = 1347 
*** ServerHello, TLSv1 
RandomCookie: GMT: 1434719497 bytes = { 210, 157, 0, 180, 231, 29, 218, 170, 155, 154, 158, 136, 171, 172, 173, 11, 9, 95, 169, 164, 107, 33, 138, 187, 114, 62, 39, 224 } 
Session ID: {86, 132, 21, 9, 10, 164, 177, 194, 128, 194, 233, 113, 113, 209, 137, 96, 86, 15, 246, 171, 126, 60, 182, 249, 58, 108, 215, 127, 171, 228, 223, 15} 
Cipher Suite: TLS_RSA_WITH_AES_128_CBC_SHA 
Compression Method: 0 
*** 
%% Created: [Session-1, TLS_RSA_WITH_AES_128_CBC_SHA] 
** TLS_RSA_WITH_AES_128_CBC_SHA 
*** Certificate chain 
[abbreviated for simplification]...loads 
chain[0] 
.... 
....chain[6] 
*** 
Found trusted certificate: 
[ 
    [Abbreviated here for simplification] 
] 

Certificate Extensions: 6 
[1]: .... [Abbreviated here for simplification] 
[2]: ..... [Abbreviated here for simplification] 
[3]: ..... [Abbreviated here for simplification] 
[4]: ..... [Abbreviated here for simplification] 
[5]: ..... [Abbreviated here for simplification] 
[6]: ..... [Abbreviated here for simplification] 
*** ServerHelloDone 
*** ClientKeyExchange, RSA PreMasterSecret, TLSv1 
main, WRITE: TLSv1 Handshake, length = 262 
SESSION KEYGEN: 
PreMaster Secret: 
.... [Abbreviated here for simplification] 
CONNECTION KEYGEN: 
Client Nonce: 
.... [Abbreviated here for simplification] 
Server Nonce: 
.... [Abbreviated here for simplification] 
Master Secret: 
.... [Abbreviated here for simplification] 
Client MAC write Secret: 
... [Abbreviated here for simplification]        
Server MAC write Secret: 
.....[Abbreviated here for simplification]       
Client write key: 
0000: 26 0E 02 DE 04 67 CF 56 79 17 FA 89 98 A3 D0 75 &....g.Vy......u 
Server write key: 
0000: 02 3E 5E 9D 7B C4 74 36 74 58 7E 64 D6 FF B4 2D .>^...t6tX.d...- 
Client write IV: 
0000: 87 7B 42 7D 33 E9 2C E2 50 E8 49 FE 0C C9 FE 37 ..B.3.,.P.I....7 
Server write IV: 
0000: 4C 35 0F 1C F1 23 9F A3 49 21 5D 58 24 51 8F 9C L5...#..I!]X$Q.. 
main, WRITE: TLSv1 Change Cipher Spec, length = 1 
*** Finished 
verify_data: { 127, 65, 162, 165, 117, 87, 61, 139, 47, 253, 84, 93 } 
*** 
main, WRITE: TLSv1 Handshake, length = 48 
main, READ: TLSv1 Change Cipher Spec, length = 1 
main, READ: TLSv1 Handshake, length = 48 
*** Finished 
verify_data: { 198, 137, 122, 87, 73, 249, 126, 148, 111, 156, 34, 192 } 
*** 
%% Cached client session: [Session-1, TLS_RSA_WITH_AES_128_CBC_SHA] 
main, WRITE: TLSv1 Application Data, length = 416 
main, WRITE: TLSv1 Application Data, length = 9520 
main, READ: TLSv1 Application Data, length = 192 
main, called close() 
main, called closeInternal(true) 
main, SEND TLSv1 ALERT: warning, description = close_notify 
main, WRITE: TLSv1 Alert, length = 32 
org.springframework.ws.client.WebServiceTransportException: Forbidden [403] 
+0

我认为你的Java代码的相关部分可能会有所帮助。 –

+1

403意味着禁止...因此,首先查看您正在使用的端点是什么......很可能您没有正确认证和/或地址错误。 – SnakeDoc

+0

谢谢@SankeDoc。这就是我原来的想法。服务器方面的人不断拒绝相信他们做错了什么。我想认为他们给我的地址是正确的.....无论如何,感谢您的洞察力。 – Liming

回答

2

SSL错误403

在相反。这里没有SSL错误。 403是一个HTTP错误代码,并且您收到它的这一事实表明您的SSL设置工作正常。

403表示'禁止',这意味着您使用的URL在某些或所有情况下都被拒绝客户端访问。只有你知道他们是什么。

+0

谢谢EJP。我只是想确保我有一双了解SSL handhsake日志的眼睛,看看我是否错过了任何东西。所以它看起来像是在服务器端发生的事情。我需要让他们进一步研究,因为我在这里做了一切正确的事情。 – Liming