Здесь есть несколько проблем:
- сертификат, который вы запрашиваете у PKI k8s, не будет содержать никаких обязательных полей
- формат ключа не будет работать для клиентов Java
Давайте обратимся к ним по одному:
Запрос сертификата клиента у PKI kubernetes
Сертификат клиента для пользователя с CockroachDB должен установить для общего имени субъекта имя пользователя. например: CN=root
. Это также должно быть правильно настроено, чтобы разрешить использование ключа Client Authentication
.
В kubernetes docs мы включаем пример для запуска клиента в том же кластере kubernetes. config для защищенных клиентов включает контейнер init, который запрашивает сертификат клиента и делает его доступным для основного задания.
Если ваш клиент работает в Kubernetes, я рекомендую адаптировать этот конфиг для вашего собственного клиента.
Формат ключа для клиентов Java
Клиенты Java ожидают ключи в формате PKCS # 8, тогда как сертификаты, выводимые как вашей командой, так и инструментом request-cert
, выводят ключи в кодировке PEM.
Вы можете конвертировать ключ, используя openssl:
openssl pkcs8 -topk8 -inform PEM -outform DER -in client.myuser.key -out client.myuser.pk8
Более подробную информацию можно найти на CockroachDB. Постройте страницу приложения Java .