मैं एक आईपैड मेनफ्रेम (मुझे विश्वास है कि यह zSeries) से कनेक्ट करने के लिए एक विंडोज जावा 1.6.0_29-b11 वीएम में चल रहे अपाचे सीएक्सएफ क्लाइंट का उपयोग कर रहा हूं, और एक SOAP का आह्वान करना वहां चल रही वेब सेवा। कनेक्शन एसएसएल/टीएलएस के माध्यम से किया जाता है, और अधिकांश समय ठीक काम करता है।एसएसएल "खराब रिकॉर्ड मैक" अपवाद का निवारण कैसे करें
हालांकि, समय-समय पर मेरे पास bad record MAC
संदेश के साथ SSL अपवाद हैं। javax.net.debug
संपत्ति के साथ प्रोग्राम का आउटपुट यहां दिया गया है।
2011-11-16 12:32:37,731 INFO LoggingOutInterceptor: Outbound Message
---------------------------
ID: 29
Address: https://1.2.3.4/access/servlet/blabla.atk123
Encoding: UTF-8
Content-Type: text/xml
Headers: {Accept=[*/*], SOAPAction=["Blablaaction/ATK123.Execute"]}
Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><ATK123.Execute xmlns="Blabla"><Usrid>WA</Usrid><Usrpwd>54321</Usrpwd><Ultautid>9999</Ultautid></ATK123.Execute></soap:Body></soap:Envelope>
--------------------------------------
pool-1-thread-1, setSoTimeout(30000) called
pool-1-thread-1, WRITE: TLSv1 Application Data, length = 321
pool-1-thread-1, WRITE: TLSv1 Application Data, length = 262
pool-1-thread-1, READ: TLSv1 Application Data, length = 483
pool-1-thread-1, READ: TLSv1 Application Data, length = 16148
pool-1-thread-1, READ: TLSv1 Application Data, length = 282
%% Invalidated: [Session-1, SSL_RSA_WITH_RC4_128_SHA]
pool-1-thread-1, SEND TLSv1 ALERT: fatal, description = bad_record_mac
pool-1-thread-1, WRITE: TLSv1 Alert, length = 22
pool-1-thread-1, called closeSocket()
pool-1-thread-1, handling exception: javax.net.ssl.SSLException: bad record MAC
2011-11-16 12:32:38,511 WARN PhaseInterceptorChain: Interceptor for {Blabla}ATK123#{Blabla}Execute has thrown exception, unwinding now
org.apache.cxf.interceptor.Fault: bad record MAC
at org.apache.cxf.interceptor.LoggingInInterceptor.logging(LoggingInInterceptor.java:144)
at org.apache.cxf.interceptor.LoggingInInterceptor.handleMessage(LoggingInInterceptor.java:73)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:263)
at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:797)
.... (more stuff)
दुर्भाग्यवश, मेरे पास सर्वर पर एंडपॉइंट को संशोधित या डिबग करने की संभावना नहीं है।
इसका कारण क्या हो सकता है?
मैं इस व्यवहार को कैसे अलग और ठीक कर सकता हूं? ,
20 Bad record MAC fatal Possibly a bad SSL implementation, or payload has been tampered with e.g. FTP firewall rule on FTPS server.
यह शायद एसएसएल कार्यान्वयन और डेटा की मात्रा बहुत बड़ी हैं भेजा जा रहा है के साथ कुछ है:
क्या यह किसी भी मौके से वायरलेस कनेक्शन पर है? –
जावा और पोर्टग्रेएसक्यूएल के बीच ["खराब रिकॉर्ड मैक" एसएसएल त्रुटि का संभावित डुप्लिकेट] (http://stackoverflow.com/questions/2446292/bad-record-mac-ssl-error-between-java-and-portgresql) –
यह एक फाइबर कनेक्शन है। हालांकि बहुत स्थिर नहीं है .. –