Доступ к сертификатам локального компьютера Windows из службы Windows, написанной на Java

#java #authentication #ssl #windows-services #client-certificates

#java #проверка подлинности #ssl #windows-services #клиент-сертификаты

Вопрос:

У нас есть следующая настройка:

  1. Java реализовала службу Windows с использованием WinSW
  2. Приложение Java передает аппаратные события через HTTP на сервер

Связь с сервером должна быть переключена на HTTPS, а клиент должен быть аутентифицирован сервером. HTTPS уже работает, так что отсутствует только часть аутентификации клиента. Все компьютеры уже оснащены индивидуальными сертификатами компьютеров, установленными в хранилище сертификатов локального компьютера Windows.

Вопрос в том, существует ли способ, которым приложение Java как служба Windows может найти его через «SunMSCAPI» в хранилище сертификатов «Windows-MY».

Я могу запустить службу от имени локального пользователя и «увидеть» личный сертификат этого пользователя, так что это может быть обходным путем со всеми известными недостатками (например, служба больше не запускается при изменении пароля пользователя). Я попытался запустить службу для нескольких разных пользователей (пользователя службы, пользователя сети и т. Д.), Но она никогда не «видит» личные сертификаты хранилища сертификатов локального компьютера.

Я много читал и искал о «SunMSCAPI» и о том, как управлять сертификатами в Windows и получать к ним доступ с Java, поэтому, боюсь, это вообще невозможно, но, возможно, кто-то знает, какого технического пользователя использовать и какая настройка / конфигурация делает трюк.

Комментарии:

1. Наконец я нашел это: bugs.openjdk.java.net/browse/JDK-6782021 ; Я боюсь, что, вероятно, так оно и есть.