Можно ли использовать подписанный сертификат без явного импорта?

Я прочитал много статей, касающихся импорта сертификата, но мне все еще неясно, что нужно сделать.

При подключении к сайту SSL из приложения Java [в данном случае, веб-приложения JBOSS] необходимо ли предварительно явно устанавливать сертификат клиента на сервере приложений?

Я могу установить клиентский сертификат вручную, но есть срок годности. Поэтому мне нужно будет управлять датами истечения срока действия всех сертификатов, установленных клиентом на нашем сервере приложений, и отключаться для обновления каждого из них. Такое ощущение, что должен быть лучший способ. Разве приложение не должно автоматически принимать действительный подписанный сертификат? [В этом случае он подписан VeriSign]

В настоящее время мы получаем исключение при попытке доступа к URL-адресу https из приложения без явной установки сертификата. Прокси-библиотека API поглощает внутреннее исключение, поэтому я не знаю деталей.

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

1 ответ

Решение

Можно ли использовать подписанный сертификат без явного импорта?

Да, его не нужно устанавливать перед использованием. На самом деле, если вы заранее знаете, чего ожидать, вы можете включить эту информацию в приложение. Это дает дополнительное преимущество улучшения состояния безопасности приложения.

Чтобы избежать импорта сертификата, используйте пользовательский X509TrustManager и переопределить checkServerTrusted, В checkServerTrustedубедитесь, что ожидается открытый ключ сервера (т. е. закрепите сертификат или открытый ключ сервера); или убедитесь, что сертификат сервера действителен (т. е. находится в пределах допустимости и образует цепочку для вашего доверенного корня).


При подключении к сайту SSL из приложения Java [в данном случае, веб-приложения JBOSS] необходимо ли предварительно явно устанавливать сертификат клиента на сервере приложений?

В случае клиентских сертификатов сервер объявляет эмитента, на которого он полагается при выдаче клиентских сертификатов. Таким образом, сервер должен знать точку доверия для выдачи клиентских сертификатов для аутентификации клиентов.


В этом случае он подписан VeriSign

Это может быть очень плохо. В этом случае вы будете доверять всем своим клиентам, подписанным под Verisign PKI, и всем остальным клиентам Verisign, подписанным по Verisign PKI.

В этом случае, вероятно, было бы лучше избегать общедоступных ЦС и использовать свой собственный PKI (т. Е. Быть вашим собственным ЦС). В этом случае возьмите копию Network Security с OpenSSL. Книга покажет вам, как выполнять обычные задачи, используя оба openssl командный и программно.

Другие вопросы по тегам