Nano Hash - криптовалюты, майнинг, программирование

Программное добавление доверенного сертификата в Java

Я использую SSL для связи между двумя компонентами, написанными на Java. Я не могу использовать ЦС, поэтому мне приходится все подписывать самостоятельно. К сожалению, это означает, что при попытке рукопожатия я получаю исключение SunCertPathBuilderException. Я могу создать свой собственный X509TrustManager, который просто доверяет всему, но это противоречит цели наличия подписанного сертификата.

Я хотел бы при первом подключении предложить пользователю «рукопожатие SSL с недействительным сертификатом. Добавить сертификат для хранения?» или что-то, чтобы они могли добавить его для себя в свое хранилище сертификатов, как это делают веб-браузеры на сайтах с недействительными сертификатами. Я могу найти в Интернете множество примеров добавления сертификата в хранилище через командную строку, но я не могу понять, как это сделать программно. Есть ли способ сделать это?

04.05.2010

Ответы:


1

Да, это возможно.

Здесь есть некоторый код которые я использовал раньше. Мне пришлось изменить его, чтобы делать то, что я хотел, и я подозреваю, что вы тоже это сделаете, но это должно вас приблизить - вы не пытаетесь импортировать ключ, поэтому теоретически вы должны быть в состоянии упростить вещи. В любом случае вы можете получить представление о том, что вам нужно.

Документ JDK JavaDoc для java.security.KeyStore тоже довольно полезен.

05.05.2010

2

Почему бы вам не создать свой собственный ЦС и не подписать им свои сертификаты? Затем все, что вам нужно сделать, это установить собственный сертификат ЦС на машины, и каждый сертификат, подписанный этим ЦС, будет проверяться.

04.05.2010
  • Потому что каждый пользователь будет запускать свой собственный сервер и нуждается в собственном сертификате для аутентификации (чтобы отличить одного от другого). Я полагаю, что мог бы создать ЦС, но это сильно усложнило бы процедуру установки, требуя, чтобы пользователь делал мне запросы на получение сертификата. 04.05.2010

  • 3

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

    04.05.2010
    Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..