Доступ к хранилищу сертификатов Windows
Можно ли настроить wildfly/undertow для доступа к сертификату X.509, расположенному в хранилище сертификатов Windows, вместо файла, представляющего хранилище ключей, например:
<server-identities>
<ssl protocol="...">
<keystore path="name-of-the-certificate" relative-to="jboss-module-which-can-access-to-the-windows-certificate-store" keystore-password="..." alias="..." key-password="..." />
</ssl>
</server-identities>
2 ответа
Это действительно зависит от JVM, на которой вы работаете. Вам нужно настроить провайдера безопасности на тот, который поддерживает ваш jvm для работы с хранилищем ключей Windows. В случае Oracle JDK / OpenJDK вы можете найти список поставщиков здесь
Пример конфигурации может быть:
<keystore provider="SunMSCAPI" path="name-of-key-in-ms-keystore" .../>
но это действительно зависит от JVM, который вы используете, и других факторов.
Поскольку мы использовали более старую версию Wildfly (10) и это решение не работало должным образом, мы проверили исходный код для разных провайдеров.
Он изменится с поставщика файлов на другого поставщика только в том случае, если путь не установлен. Кроме того, он отправляет только один параметр в компонент Java KeyStore, что не позволяет совместно использоватьSunMSCAPI
иWINDOWS-MY
(например).
В итоге получается вот так(keystore-password
нельзя опустить):
<keystore provider="WINDOWS-MY" keystore-password="thisisnotneededbutrequired"/>
Он будет использовать первый сертификат, имеющий закрытый ключ в этом хранилище.