อาจใช้เวลานานหน่อย แต่ฉันหวังว่าบางคนที่นี่สามารถช่วยฉันได้ ฉันมีแอปพลิเคชัน Java ที่ทำงานบนแบ็กเอนด์ jboss ในเซิร์ฟเวอร์ debian linux การสื่อสารขาเข้าจะถูกส่งไปยังแบ็กเอนด์ที่ถูกต้องโดย haproxy บนเซิร์ฟเวอร์อื่น

งานหนึ่งของแอปพลิเคชันคือการให้ข้อมูลการจัดส่งแก่ผู้ใช้ โดยส่งคำขอ POST ไปยัง API ของบุคคลที่สามที่ UPS ให้บริการ ( https://www.ups.com/us/en/services/technology-integration/online-tools-tracking.page? ) และแสดงผล . เมื่อเร็ว ๆ นี้ คุณลักษณะการติดตามในแอปพลิเคชันของเราเริ่มแสดงข้อผิดพลาด ขุดลงในบันทึกสำหรับแอปพลิเคชันของเราฉันพบสิ่งนี้:

2021-10-28 10:00:00,142 ERROR [STDERR] Caused by: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
2021-10-28 10:00:00,142 ERROR [STDERR]  at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
2021-10-28 10:00:00,142 ERROR [STDERR]  at sun.security.ssl.Alerts.getSSLException(Alerts.java:154)
2021-10-28 10:00:00,142 ERROR [STDERR]  at sun.security.ssl.SSLSocketImpl.recvAlert(SSLSocketImpl.java:1959)
2021-10-28 10:00:00,142 ERROR [STDERR]  at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1077)
2021-10-28 10:00:00,142 ERROR [STDERR]  at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312)
2021-10-28 10:00:00,142 ERROR [STDERR]  at sun.security.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:702)
2021-10-28 10:00:00,142 ERROR [STDERR]  at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:122)
2021-10-28 10:00:00,142 ERROR [STDERR]  at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
2021-10-28 10:00:00,142 ERROR [STDERR]  at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
2021-10-28 10:00:00,142 ERROR [STDERR]  at org.apache.commons.httpclient.methods.StringRequestEntity.writeRequest(Unknown Source)
2021-10-28 10:00:00,142 ERROR [STDERR]  at org.apache.commons.httpclient.methods.EntityEnclosingMethod.writeRequestBody(Unknown Source)
2021-10-28 10:00:00,142 ERROR [STDERR]  at org.apache.commons.httpclient.HttpMethodBase.writeRequest(Unknown Source)
2021-10-28 10:00:00,142 ERROR [STDERR]  at org.apache.commons.httpclient.HttpMethodBase.execute(Unknown Source)
2021-10-28 10:00:00,142 ERROR [STDERR]  at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(Unknown Source)
2021-10-28 10:00:00,142 ERROR [STDERR]  at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(Unknown Source)
2021-10-28 10:00:00,143 ERROR [STDERR]  at org.apache.commons.httpclient.HttpClient.executeMethod(Unknown Source)
2021-10-28 10:00:00,143 ERROR [STDERR]  at org.apache.commons.httpclient.HttpClient.executeMethod(Unknown Source)

จากสิ่งที่ฉันสามารถบอกได้ นี่เป็นปัญหากับคำขอ SSL ด้วยเหตุผลบางประการ แอปพลิเคชันของเราปฏิเสธการตอบกลับจาก API ว่าไม่ปลอดภัย น่าเสียดายที่ฉันหลงทางเล็กน้อยว่าต้องทำอย่างไรเพื่อแก้ไขปัญหานี้ ฉันจะทราบได้อย่างไรว่าความล้มเหลวเกิดขึ้นที่ใด ฉันจะทราบได้อย่างไรว่าฉันต้องทำการเปลี่ยนแปลงใดในแอปพลิเคชันและ/หรือพร็อกซีเซิร์ฟเวอร์เพื่อให้การสื่อสารทำงานระหว่างแอปพลิเคชันของฉันกับ API ภายนอก

answer

ฉันรู้ที่มาของปัญหาแล้ว UPS API ต้องการรหัสอย่างน้อยหนึ่งรหัสจากรายการเฉพาะ และแอปพลิเคชันเซิร์ฟเวอร์ของฉันไม่ได้ติดตั้งรหัสลับที่ใช้งานร่วมกันได้ การค้นหาวิธีแก้ไขปัญหานั้นอยู่นอกเหนือขอบเขตของคำถามนี้ ดังนั้นฉันจึงสร้างคำถามอื่นที่นี่: วิธีเพิ่ม Cipher Suites เพิ่มเติมใน Java Application Server