Введение
В настоящее время принято устанавливать SSL для связи между различными внутренними микро-сервисами. Для его настройки требуются различные шаги.
Мой конкретный пример состоял в том, что я пытался настроить безопасную связь для кластера Kafka, чтобы брокеры общались через SSL и чтобы клиенты также использовали SSL при связи с брокерами kafka.
Борьба
Обычно я следую некоторым шагам учебника, чтобы получить локальный пример работы. Но это может быть трудно для устранения неполадок, когда это не работает. Вы не знаете, допустили ли вы ошибку при создании root сертификата или при создании хранилища ключей и доверенных сертификатов, или, возможно, что-то не так с вашей конфигурацией.
Хорошо бы прочитать столько документации, прежде чем пытаться понять что ты делаешь. И не просто слепо следовать некоторым инструкциям. Дело в том, что изучать кучу вещей одновременно может быть очень сложно. Потому что вам нужно использовать различные вещи: openssl
, keytool
, Kafka
(или что-то еще)
Я пытался найти, есть ли какой-либо существующий инструмент, или если keytool
можно использовать напрямую, чтобы указать ему хранилище ключей, хранилище доверенных сертификатов и имя хоста, и если эти файлы «совместимы», то результатом будет ДА / НЕТ.
Я знаю, что можно использовать openssl s_client -connect my-host:my-port
Но в Чтобы использовать его, сначала нужно раскрутить веб-сервер с вашим хранилищем ключей.
Вопрос
Как обеспечить, чтобы сгенерированные вами параметры keystore.jks
и trustore.jks
работали правильно для некоторых ваших имен хостов ? Таким образом, вы можете исключить их как проблемные c и сосредоточиться на других вещах, которые могут привести к неработоспособности вашей системы.
Обновление
В некоторых комментариях предлагаются другие подходы:
- используйте
openssl
, чтобы запустить его с s_server
и начать с s_client
- профи : вероятно, более надежный, лучший выход для отладки
- cons : если у вас есть только
.jks
файлы, вам нужно использовать keytool
, чтобы преобразовать их в .p12
- использовать
Keystore explorer
или keytool -v -list ...
для проверки содержимого - это ручная работа, и неясно, какие значения должны совпадать, чтобы гарантировать, что связь будет фактически работать ((
server
с keystore.jks
) и (client
с truststore.jks
)