2014-01-03 1 views
2

Я сижу второй целый день на проблеме и сдаюсь. Я написал джерси-клиент, который работает на 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 
+0

Похоже, ваше доверие магазин плохо. Вы устанавливаете '' -Dweblogic.security.SSL.trustedCAKeyStore' что-то? Ссылка здесь: http://docs.oracle.com/cd/E11035_01/wls100/secmanage/identity_trust.html –

+0

Нет, я не устанавливаю его, должен Я верю, если я ошибаюсь, но думаю, что нет. На консоли weblogic я вижу, что выбрано DemoTrust.jks. Внутри этого jks все известны CA. Возможно, я импортировал этот последний сертификат в цепочку с CN = "* .somcompany.com ", и я знаю, что Weblogic не поддерживает подстановочные знаки в сертификатах - meybe, поэтому эта ошибка возникает: ava.security.cert.CertificateParsingException: не удалось установить значение для ASN.1. Помимо веб-сервисов на основе CXF и использования других сертификатов - без подстановочных знаков работает с помощью ssl. Ошибки не говорят, что сертификат не доверен, но это BAD –

+0

Попробуйте включить среду> Серверы> [мой сервер]> SSL> Дополнительно> Использовать JSSE SSL по http://stackoverflow.com/ вопросы/27928157/не может-Access- https-from-weblogic – nevster

ответ

0

попытка добавить сертификат сайта для вас WebLogic доверенных сертификатов, а затем добавьте ниже паров в вашем запуске WebLogic

-DUseSunHttpHandler=true 
-Dssl.SocketFactory.provider=sun.security.ssl.SSLSocketFactoryImpl 
-Dssl.ServerSocketFactory.provider=sun.security.ssl.SSLSocketFactoryImpl 

У меня есть проблема, как ваш и этим вопросом я его решаю Cannot access HTTPS from Weblogic

0

Выпуск фиксируется путем добавления записи в этих аргументах JVM

"-Dweblogic.security.SSL.nojce=true" 
"-Dweblogic.ssl.JSSEEnabled=true" 
"-Dweblogic.security.SSL.enableJSSE=true" 
+0

Хотя этот фрагмент кода может решить вопрос, [включая объяснение] (http: //meta.stackexchange.com/questions/114762/explaining-whole-code-based-answers) действительно помогает улучшить качество вашего сообщения. Помните, что вы отвечаете на вопрос читателей в будущем, и эти люди могут не знать причин вашего предложения кода. – DimaSan

Смежные вопросы