Статьи

Конфигурирование соединения SSL / TLS стало проще

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

В этой статье я предполагаю, что у вас уже есть базовые знания о сертификатах, хранилищах ключей, протоколах шифрования и ssl-handshake. Если нет, я бы порекомендовал пройти через эту статью: Как легко настроить взаимный TLS .

Он будет проходить по следующим темам:

  • Нет безопасности.
  • Односторонняя аутентификация.
  • Двусторонняя аутентификация.
  • Двусторонняя аутентификация с доверием центра сертификации.

В нем также объясняется, как создавать хранилища ключей, сертификаты, запросы на подпись сертификатов и как их реализовывать.

Давайте продолжим к следующей части. Я хочу привести несколько примеров, объясняющих скрытые трудности при настройке безопасного соединения с https и сертификатами в простой Java. Для этого примера я буду использовать Apache HttpClient. Если мы хотим использовать клиент без шифрования, следующая настройка выполнит работу:


Джава