Bu biraz uzun bir atış olabilir, ama burada birinin bana yardım edebileceğini umuyorum. Bir debian linux sunucusunda jboss arka ucunda çalışan bir java uygulamasına sahibim. Gelen iletişimler, başka bir sunucuda haproxy tarafından doğru arka uca yönlendirilir.

Uygulamanın görevlerinden biri, kullanıcıya gönderi bilgilerini sağlamaktır. Bunu, UPS tarafından sağlanan bir üçüncü taraf API'sine ( https://www.ups.com/us/en/services/technology-integration/online-tools-tracking.page? ) bir POST talebi göndererek ve sonuçları görüntüleyerek yapar. . Son zamanlarda uygulamamızdaki takip özelliği hata atmaya başladı. Uygulamamızın günlüklerini incelerken şunu buldum:

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)

Söyleyebileceğim kadarıyla, bu ssl isteğiyle ilgili bir sorun. Bazı nedenlerden dolayı, uygulamamız API'den gelen yanıtı güvensiz olarak reddediyor. Ne yazık ki, bunu düzeltmek için ne yapacağım konusunda biraz kayboldum. Arızanın tam olarak nerede olduğunu nasıl belirleyebilirim? Uygulamam ve harici API arasında iletişimin çalışmasını sağlamak için uygulamamda ve/veya proxy sunucumda hangi değişiklikleri yapmam gerektiğini nasıl anlarım?

answer

Sorunun kaynağını anladım. UPS API, belirli bir listeden en az bir şifre gerektiriyor ve uygulama sunucumda uyumlu şifrelerin hiçbiri kurulu değil. BU sorunun nasıl çözüleceğini bulmak bu sorunun kapsamı dışındadır, bu yüzden burada başka bir soru oluşturdum: Java Uygulama Sunucusuna Ek Şifre Paketleri Nasıl Eklenir?