Сертификат сервера и клиентское хранилище доверенных сертификатов - PullRequest
0 голосов
/ 28 сентября 2008

Я пытаюсь вызвать веб-сервис, используя ssl. Как получить соответствующий сертификат сервера, чтобы я мог импортировать его в доверенное хранилище? Я знаю об использовании свойства com.ibm.ssl.enableSignerExchangePrompt из основного метода, но я бы добавил сертификат сервера в хранилище доверенных сертификатов вручную.

Я не хочу, чтобы это свойство было установлено ни в одном из моих сервлетов

Любая помощь с благодарностью Спасибо Дэмиен

Ответы [ 2 ]

2 голосов
/ 28 сентября 2008

вы можете программно сделать это с помощью Java, реализовав свой собственный X509TrustManager.


public class dummyTrustManager implements X509TrustManager {

        public void checkClientTrusted(X509Certificate[] chain, String authType) throws CertificateException {
            //do nothing
        }

        public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
            // do nothing
        }

        public X509Certificate[] getAcceptedIssuers() {
            //just return an empty issuer
            return new X509Certificate[0];
        }
    }

Затем вы можете использовать этот диспетчер доверия для создания сокета SSL


SSLContext context = SSLContext.getInstance("SSL");
context.init(null, new TrustManager[] { new dummyTrustManager() },
                            new java.security.SecureRandom());

SSLSocketFactory factory = context.getSocketFactory();
InetAddress addr = InetAddress.getByName(host_);
SSLSocket sock =  (SSLSocket)factory.createSocket(addr, port_);

Затем с этим сокетом вы можете просто извлечь сертификат сервера (пут импортировать его в доверенном хранилище ключей)


SSLSession session = sock.getSession();
Certificate[] certchain = session.getPeerCertificates();
0 голосов
/ 28 сентября 2008

Если вы заходите на сайт в веб-браузере, вы можете просмотреть информацию о безопасности, нажав на маленький значок замка, и в появившемся диалоговом окне вы можете сохранить сертификат.

Шаги для Chrome

  1. Нажмите на замок (в адресной строке)
  2. Нажмите «Информация о сертификате»
  3. На вкладке «Детали» вы можете выбрать «Копировать в файл ...».
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...