Я сижу второй целый день на проблеме и сдаюсь. Я написал джерси-клиент, который работает на Jetty, а не работает на Weblogic. Причина скрыта в сертификате: CN = "* .somecompany.com". Weblogic не любит подстановочные знаки в CN. У кого-нибудь есть решение для этого?Jersey + Weblogic - javax.net.ssl.SSLKeyException: FATAL Alert: BAD_CERTIFICATE
Я добавил их к Weblogic начать Params, но Weblogic использует множество других клиентов, поэтому я не хочу, чтобы добавить этот параметр: ignoreHostnameVerification: -
-Dssl.debug=true -Dweblogic.security.SSL.ignoreHostnameVerification=true
-Dweblogic.security.SSL.enforceConstraints=off
-Dweblogic.nodemanager.sslHostNameVerificationEnabled=false
-Dweblogic.security.SSL.allowSmallRSAExponent=true
-Dweblogic.security.SSL.ignoreHostnameVerification=true
Я также доступ службы REST с помощью веб-браузера и загруженной сертификат на диск, а затем добавили его в truststore с помощью keytool .. Он по-прежнему не работает.
Единственный и лучший способ - написать что-то обычное, которое проверяет имя хоста ?? Возможно, этот шаблон является проблемой. Но я новичок, не знаю, как его написать, рабочий пример будет очень благодарен, я не смогу сделать это сам:/
Ниже приведены исключения, нашел (не уверен, присутствовали и когда, но он по-прежнему не работает) Я пытался исправить это:
1) Импорт всю цепочку сертификатов для доверенных сертификатов (Java и WebLogic truststores)
2) Добавление запуска параметров для Weblogic, но это нехорошее решение
com.sun.jersey.api.client.ClientHandlerException: javax.net.ssl.SSLKeyException: FATAL
Alert:BAD_CERTIFICATE - A corrupt or unuseable certificate was received.
com.sun.jersey.api.client.ClientHandlerException:
javax.net.ssl.SSLKeyException: FATAL Alert:BAD_CERTIFICATE - A corrupt
or unuseable certificate was received.
at
com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHa ndler.java:131)
at com.sun.jersey.api.client.Client.handle(Client.java:629)
at
com.sun.jersey.api.client.WebResource.handle(WebResource.java:601)
at
com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
at
com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:507)
at
ВТОРОГО
with Severity: FATAL, Type: 42
java.lang.Exception: New alert stack
at com.certicom.tls.record.alert.Alert.<init>(Unknown Source)
at com.certicom.tls.record.handshake.HandshakeHandler.handleHandshakeMessages(Unknown Source)
at com.certicom.tls.record.MessageInterpreter.interpretContent(Unknown Source)
at com.certicom.tls.record.MessageInterpreter.decryptMessage(Unknown Source)
at com.certicom.tls.record.ReadHandler.processRecord(Unknown Source)
at com.certicom.tls.record.ReadHandler.readRecord(Unknown Source)
at com.certicom.tls.record.ReadHandler.readUntilHandshakeComplete(Unknown Source)
at com.certicom.tls.interfaceimpl.TLSConnectionImpl.completeHandshake(Unknown Source)
at com.certicom.tls.record.WriteHandler.write(Unknown Source)
at com.certicom.io.OutputSSLIOStreamWrapper.write(Unknown Source)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
at java.io.FilterOutputStream.flush(FilterOutputStream.java:140)
at weblogic.net.http.HttpURLConnection.writeRequests(HttpURLConnection.java:154)
at weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:358)
at weblogic.net.http.SOAPHttpsURLConnection.getInputStream(SOAPHttpsURLConnection.java:37)
at weblogic.net.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:702)
at weblogic.net.http.HttpURLConnection.getResponseCode(HttpURLConnection.java:962)
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:217)
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:129)
at com.sun.jersey.api.client.Client.handle(Client.java:629)
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:601)
at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:507)
at
ТРЕТЬЕГО
E7C0E2529308F> <> <1387573464164> <BEA-000000> <Failure loading trusted CA list
java.security.cert.CertificateParsingException: Could not set value for ASN.1 string object.
at com.certicom.security.cert.internal.x509.X509V3CertImpl.<init>(Unknown Source)
at com.certicom.tls.interfaceimpl.CertificateSupport.addTrustedCertificate(Unknown Source)
at com.certicom.net.ssl.SSLContext.addTrustedCertificate(Unknown Source)
at com.bea.sslplus.CerticomSSLContext.addTrustedCA(Unknown Source)
at weblogic.security.utils.SSLContextWrapper.addTrustedCA(SSLContextWrapper.java:62)
at weblogic.security.utils.SSLSetup.getSSLContext(SSLSetup.java:320)
at weblogic.net.http.HttpsClient.openServer(HttpsClient.java:334)
at weblogic.net.http.HttpsClient.New(HttpsClient.java:566)
at weblogic.net.http.HttpsURLConnection.getHttpClient(HttpsURLConnection.java:339)
at weblogic.net.http.HttpURLConnection.getInputStream(HttpURLConnection.java:408)
at weblogic.net.http.SOAPHttpsURLConnection.getInputStream(SOAPHttpsURLConnection.java:37)
at weblogic.net.http.HttpURLConnection.getHeaderField(HttpURLConnection.java:702)
at weblogic.net.http.HttpURLConnection.getResponseCode(HttpURLConnection.java:962)
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler._invoke(URLConnectionClientHandler.java:217)
at com.sun.jersey.client.urlconnection.URLConnectionClientHandler.handle(URLConnectionClientHandler.java:129)
at com.sun.jersey.api.client.Client.handle(Client.java:629)
at com.sun.jersey.api.client.WebResource.handle(WebResource.java:601)
at com.sun.jersey.api.client.WebResource.access$200(WebResource.java:74)
at com.sun.jersey.api.client.WebResource$Builder.post(WebResource.java:507)
at
Похоже, ваше доверие магазин плохо. Вы устанавливаете '' -Dweblogic.security.SSL.trustedCAKeyStore' что-то? Ссылка здесь: http://docs.oracle.com/cd/E11035_01/wls100/secmanage/identity_trust.html –
Нет, я не устанавливаю его, должен Я верю, если я ошибаюсь, но думаю, что нет. На консоли weblogic я вижу, что выбрано DemoTrust.jks. Внутри этого jks все известны CA. Возможно, я импортировал этот последний сертификат в цепочку с CN = "* .somcompany.com ", и я знаю, что Weblogic не поддерживает подстановочные знаки в сертификатах - meybe, поэтому эта ошибка возникает: ava.security.cert.CertificateParsingException: не удалось установить значение для ASN.1. Помимо веб-сервисов на основе CXF и использования других сертификатов - без подстановочных знаков работает с помощью ssl. Ошибки не говорят, что сертификат не доверен, но это BAD –
Попробуйте включить среду> Серверы> [мой сервер]> SSL> Дополнительно> Использовать JSSE SSL по http://stackoverflow.com/ вопросы/27928157/не может-Access- https-from-weblogic – nevster