Можно ли использовать подписанный сертификат без явного импорта?
Я прочитал много статей, касающихся импорта сертификата, но мне все еще неясно, что нужно сделать.
При подключении к сайту 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
командный и программно.