![ป้อนคำอธิบายรูปภาพที่นี่][1] ![ป้อนคำอธิบายรูปภาพที่นี่][2] ![ป้อนคำอธิบายรูปภาพที่นี่][3]
ฉันกำลังพยายามสร้างการเชื่อมต่อที่ปลอดภัยระหว่างไคลเอนต์และเซิร์ฟเวอร์ ไคลเอนต์รองรับ TLSv1.2 และเซิร์ฟเวอร์รองรับ TLSv1.0 แต่ได้รับข้อยกเว้น "javax.net.ssl.SSLException: ข้อมูล MAC ไม่ตรงกัน"
here is the printstacktrace :
javax.net.ssl.SSLException: MAC data does not match.
at com.rsa.sslj.x.aJ.b(Unknown Source)
at com.rsa.sslj.x.aJ.a(Unknown Source)
at com.rsa.sslj.x.aJ.a(Unknown Source)
at com.rsa.sslj.x.aU.c(Unknown Source)
at com.rsa.sslj.x.aU.a(Unknown Source)
at com.rsa.sslj.x.aU.h(Unknown Source)
at com.rsa.sslj.x.cI.startHandshake(Unknown Source)
at com.sun.jndi.ldap.ext.StartTlsResponseImpl.startHandshake(StartTlsResponseImpl.java:361)
at com.sun.jndi.ldap.ext.StartTlsResponseImpl.negotiate(StartTlsResponseImpl.java:225)
at com.cisco.ccm.admin.utilities.LdapUtil.validateHost(LdapUtil.java:383)
at com.cisco.ccm.admin.utilities.LdapUtil.validateHost(LdapUtil.java:289)
ฉันตรวจสอบโค้ดของฉันว่าโปรโตคอลที่เปิดใช้งานคือ SSLv3, TLSv1 , TLSv1.1 และ TLSv1.2 โดยใช้เมธอด getEnabledProtocols() ฉันได้อ่านใน TLSv1.2 rfc ว่าหากเซิร์ฟเวอร์รองรับ TLS เวอร์ชันต่ำกว่าแล้วไคลเอ็นต์ ไคลเอ็นต์ควรเจรจากับ TLS เวอร์ชันต่ำกว่า
แต่ในกรณีของฉัน ฉันได้รับข้อยกเว้นข้างต้น (ทำไม ??... สิ่งนี้ไม่ควรเกิดขึ้นและเจรจากับ TLSv1)
หมายเหตุ: นอกจากนี้ หากฉันตั้งค่าโปรโตคอลที่เปิดใช้งานเป็น TLSv1 เท่านั้น ฉันจะสามารถสร้างการเชื่อมต่อ TLS ได้
กรุณาช่วยฉันออกไป. ขอบคุณ
[1]: http://i.stack.imgur.com/RC4Ha.jpg
[2]: http://i.stack.imgur.com/rjXjq.jpg
[3]: http://i.stack.imgur.com/WIRvF.jpg