java tls 证书_在使用Java 8重新协商TLS_1.2期间,服务器证书更改受到限制
我對SSL很陌生,并且被看似已知的問題所困擾.我的應(yīng)用程序是SSL客戶端,并調(diào)用另一個(gè)為雙向SSL啟用的組件.兩個(gè)組件中的證書都是正確的,有時(shí)連接工作正常.每個(gè)服務(wù)器都有自己的服務(wù)器證書和私鑰,但具有相同的根證書和中間證書.
服務(wù)器中的SSL檢查在Apache SW LB中完成.
|-------------|
/ | Tomcat1 |
|-------------| / |-------------|
|---------->|Apache SW LB |/
| |-------------|\
| \
| \ |-------------|
|-----------| |------------| | | Tomcat 2 |
|SSL Client |---HTTPS--->|Hardware LB |------| |-------------|
|-----------| |------------| | |-------------|
| / | Tomcat3 |
| |-------------| / |-------------|
|---------->|Apache SW LB |/
|-------------|\
\
\|-------------|
| Tomcat4 |
|-------------|
有時(shí)我會(huì)收到如下錯(cuò)誤: –
***
%% Invalidated: [Session-10,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256]
http-nio-8443-exec-10,SEND TLSv1.2 ALERT: fatal,description = bad_certificate
http-nio-8443-exec-10,WRITE: TLSv1.2 Alert,length = 2
[Raw write]: length = 7
0000: 15 03 03 00 02 02 2A ......*
http-nio-8443-exec-10,called closeSocket()
http-nio-8443-exec-10,handling exception: javax.net.ssl.SSLHandshakeException: server certificate change is restricted during renegotiation
我使用Spring REST模板來調(diào)用REST調(diào)用并僅使用TLS_V1.2,但仍然遇到上述錯(cuò)誤.
TrustStrategy ts = new TrustStrategy() {
@Override
public boolean isTrusted(
X509Certificate[] x509Certificates,String s)
throws CertificateException {
return true; // TODO : revisit
}
};
SSLContext sslcontext = org.apache.http.ssl.SSLContexts.custom()
.loadKeyMaterial(keyStore,keypass.tocharArray())
.loadTrustMaterial(trustStore,ts)
.build();
SSLConnectionSocketFactory sslsf = new SSLConnectionSocketFactory(
sslcontext,new String[] {
"TLSv1.2" },null,SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
return HttpClients.custom().setSSLSocketFactory(sslsf).build();
}
在谷歌搜索我發(fā)現(xiàn)這個(gè)問題將不會(huì)發(fā)生在TLSv1.2和Java 8(java版“1.8.0_60”).我正在使用Spring 4 RestTemplete來調(diào)用其余的調(diào)用.
我正在使用以下版本的httpclinet: –
由于我是SSL的新手,我?guī)缀鯖]有問題: –
1).這是SSL clinet還是SSL服務(wù)器問題?
2).有時(shí)候連接工作并且有時(shí)會(huì)破壞的任何真正原因?失敗的技術(shù)原因.
3).這與客戶端的任何緩存有關(guān)
如果有人可以指出真正的問題,這也很棒.
總結(jié)
以上是生活随笔為你收集整理的java tls 证书_在使用Java 8重新协商TLS_1.2期间,服务器证书更改受到限制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux进程实际内存大小,Linux进
- 下一篇: java美元兑换,(Java实现) 美元