WSDL + Two way SSL

103 views
Skip to first unread message

Дмитрий Омелечко

unread,
Jun 7, 2013, 1:20:08 PM6/7/13
to clojure...@googlegroups.com
Доброго времени суток.

Борюсь с топиком. Сам WSDL посредством JAX-WS вроде как поборол. Но главное осталось на потом...

Выслали мне 3 файла для подключение моего клиента к серверу посредством SSL:
ROOT_CERT
CERT
KEY_FILE

никогда не работал с этим ранее, и заведомо прошу прощения за, возможно, тупые вопрсоы.

на сколько я понял, оба сертификата надо поместить в keystore, посредством keytool

keytool -import -trustcacerts -alias root -keystore .keystore -file ROOT_CERT
keytool -import -trustcacerts -alias client -keystore .keystore -file CERT

тут у меня 1й вопрос - что делать с KEY_FILE ?

затем прописываем в project.clj 

:jvm-opts ["-Djavax.net.ssl.trustStore=/path/to/.keystore" "-Djavax.net.debug=ssl "]

пытаюсь вызвать уже метод сервера... в дебаге получаю:

keyStore is : 
keyStore type is : jks
keyStore provider is : 
init keystore
init keymanager of type SunX509
trustStore is: /path/to/.keystore
trustStore type is : JKS
trustStore provider is : 
init truststore
adding as trusted cert:

ТУТ ОБА МОИ СЕРТИФИКАТА 

Swank REPL Thread, SEND TLSv1 ALERT:  fatal, description = certificate_unknown
Swank REPL Thread, WRITE: TLSv1 Alert, length = 2
Swank REPL Thread, called closeSocket()
Swank REPL Thread, handling exception: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path validation failed: java.security.cert.CertPathValidatorException: critical policy qualifiers present in certificate
Swank REPL Thread, called close()
Swank REPL Thread, called closeInternal(true)
Finalizer, called close()
Finalizer, called closeInternal(true)

уморило уже сил нету. За любой намек буду благодарен.


java version "1.6.0_45"
Java(TM) SE Runtime Environment (build 1.6.0_45-b06-451-10M4406)
Java HotSpot(TM) 64-Bit Server VM (build 20.45-b01-451, mixed mode)

Eduard Bondarenko

unread,
Jun 7, 2013, 1:35:05 PM6/7/13
to clojure...@googlegroups.com
Нагуглилось только 
http://stackoverflow.com/questions/16916135/critical-policy-qualifiers-present-in-certificate

и комментарий в исходнике:

  482                       // reject cert if we find critical policy qualifiers and
  483                       // the policyQualifiersRejected flag is set in the params
  484                       if (!pQuals.isEmpty() && rejectPolicyQualifiers &&
  485                           policiesCritical) {
  486                           throw new CertPathValidatorException(
  487                               "critical policy qualifiers present in certificate",
  488                               null, null, -1, PKIXReason.INVALID_POLICY);
  489                       }

Надеюсь поможет.

Best regards,
Eduard


2013/6/7 Дмитрий Омелечко <dva...@gmail.com>

--
Вы получили это сообщение, поскольку подписаны на группу Clojure Russian.
 
Чтобы отказаться от подписки на эту группу и перестать получать из нее сообщения, отправьте электронное письмо на адрес clojure-russi...@googlegroups.com.
Настройки подписки и доставки писем: https://groups.google.com/groups/opt_out.
 
 

Дмитрий Омелечко

unread,
Jun 11, 2013, 2:26:01 AM6/11/13
to clojure...@googlegroups.com
спасибо за ссылки, по иронии судьбы, первая точно мой случай даже урл, тот который у меня. Разрулил, почти так же. Плюнул на корневой сертификат, и в trustStore положил, тот который выдается рессурсом. 

Суть проблеммы оказалась в том, что по к-то причине SSL в яве не может по выданному мне корневому сертификату идентифицировать сертификат, который фактически выдается рессурсом.  О том что у явы есть проблеммы с цепочками сертификтов хорошо написанно тут http://blog.palominolabs.com/2011/10/18/java-2-way-tlsssl-client-certificates-and-pkcs12-vs-jks-keystores/

может кому пригодится.


7 июня 2013 г., 20:35 пользователь Eduard Bondarenko <edb...@gmail.com> написал:
Reply all
Reply to author
Forward
0 new messages