Не удается подключиться к внешнему серверу с использованием HTTPS - PullRequest
0 голосов
/ 03 января 2019

Внешняя компания выдала мне файл сертификата PFX, чтобы я мог подключиться к их серверу и подключиться к их API. Я преобразовал этот файл в JKS, используя следующую команду:

keytool -importkeystore -srckeystore foo.pfx -srcstoretype pkcs12 -destkeystore foo.jks -deststoretype JKS

Затем я взял этот гист , который показывает, как создать простой клиент Java SOAP, который будет отправлять полезные данные SOAP / XML. Я изменил его, чтобы указать на мой новый JKS, а также правильно установить пароль. Я также изменил URL, чтобы он явно указывал на * 1006

Однако при подключении я сталкиваюсь с этой проблемой:

Exception in thread "main" javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: java.security.SignatureException: Signature does not match.
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:192)
    at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1946)
    at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:316)
    at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:310)
    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1639)
    at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:223)
    at sun.security.ssl.Handshaker.processLoop(Handshaker.java:1037)
    at sun.security.ssl.Handshaker.process_record(Handshaker.java:965)
    at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1064)
    at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1367)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1395)
    at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1379)
    at sun.net.www.protocol.https.HttpsClient.afterConnect(HttpsClient.java:559)
    at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:185)
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1334)
    at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1309)
    at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:259)
    at org.ofsted.SSLtest.run(SSLtest.java:216)
    at org.ofsted.SSLtest.main(SSLtest.java:237)
Caused by: java.security.cert.CertificateException: java.security.SignatureException: Signature does not match.
    at org.ofsted.SSLtest$1.checkServerTrusted(SSLtest.java:146)
    at sun.security.ssl.AbstractTrustManagerWrapper.checkServerTrusted(SSLContextImpl.java:1091)
    at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1621)
    ... 14 more
Caused by: java.security.SignatureException: Signature does not match.
    at sun.security.x509.X509CertImpl.verify(X509CertImpl.java:449)
    at sun.security.x509.X509CertImpl.verify(X509CertImpl.java:392)
    at org.ofsted.SSLtest$1.checkServerTrusted(SSLtest.java:143)
    ... 16 more

Я прочитал другие посты, касающиеся следующей ошибки Java CertificationException:

javax.net.ssl.SSLHandshakeException: java.security.cert.CertificateException: java.security.SignatureException: 
Signature does not match 

Я посмотрел другие посты об этой ошибке, и они говорят о доверии сертификату, присланному мне внешней компанией. Но я в замешательстве. Является ли файл PFX сертификатом? Я думал, что сертификат должен быть с расширением .crt? Нет? Любые советы будут очень полезны. Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...