Конфигурация CXF SSL Spring - Пустая цепочка сертификатов клиента - PullRequest
2 голосов
/ 07 июля 2010

Я пытаюсь создать клиент Web-службы, защищенный SSL, используя конфигурацию CXF Spring, и мне интересно, как можно сказать CXF использовать этот сертификат клиента в моем хранилище ключей. Это должно существовать, потому что, если мое хранилище ключей содержит много сертификатов, как CXF должен делать, чтобы найти хороший?

Вот моя конфигурация:

<http-conf:conduit name="{urn:ihe:iti:xds-b:2007}DocumentRepositoryPortType.http-conduit">
    <http-conf:client AutoRedirect="true" Connection="Keep-Alive"/>
<http-conf:tlsClientParameters secureSocketProtocol="SSL">
    <sec:keyManagers keyPassword="storepass">
            <sec:keyStore type="JKS" password="storepass" file="src/main/resources/keystore.jks" />
        </sec:keyManagers>
    <sec:trustManagers>
            <sec:keyStore type="JKS" password="storepass" file="src/main/resources/truststore.jks" />
    </sec:trustManagers>
    <sec:cipherSuitesFilter>
        <sec:include>.*_EXPORT_.*</sec:include>
    <sec:include>.*_EXPORT1024_.*</sec:include>
    <sec:include>.*_WITH_DES_.*</sec:include>
    <sec:include>.*_WITH_NULL_.*</sec:include>
    <sec:exclude>.*_DH_anon_.*</sec:exclude>
     </sec:cipherSuitesFilter>
    </http-conf:tlsClientParameters>
</http-conf:conduit>

В

<sec:keyManagers keyPassword="
    <sec:keyStore type="JKS" password="storepass" file="src/main/resources/keystore.jks" />
</sec:keyManagers>

раздел, есть ли способ написать что-то вроде

alias="mycertificate"

Я искал на нескольких веб-сайтах, но пока не дал результатов.

На самом деле моя проблема в том, что когда мой клиент CXF связывается с сервером, защищенным SSL, с сервера поступает запрос сертификата, чтобы идентифицировать себя с сертификатом. Сервер сообщает мне, какие именно центры сертификации он ожидает, в моем хранилище ключей у меня есть сертификат, который был сертифицирован одним из этих центров, но от моего клиента не передается сертификат ...

Вот как это выглядит в журналах SSL:

CertificateRequest:

*** CertificateRequest
Cert Types: RSA, DSS, 
Cert Authorities:
<CN=****, DC=****, DC=****>
Others authorities...

Пустая цепочка сертификатов клиента:

*** Certificate chain
***

Ребята, у вас есть идеи?

Заранее спасибо!

1 Ответ

1 голос
/ 09 июля 2010

Вероятно, атрибут "name" на http-проводнике неверен.Это должно быть имя конечной точки (из элемента Service), а не имя PortType.

Однако я бы порекомендовал использовать для имени URL-адрес.. *) в конце, чтобы соответствовать всем URL.

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