#java #authentication #ssl #windows-services #client-certificates
#java #проверка подлинности #ssl #windows-services #клиент-сертификаты
Вопрос:
У нас есть следующая настройка:
- Java реализовала службу Windows с использованием WinSW
- Приложение Java передает аппаратные события через HTTP на сервер
Связь с сервером должна быть переключена на HTTPS, а клиент должен быть аутентифицирован сервером. HTTPS уже работает, так что отсутствует только часть аутентификации клиента. Все компьютеры уже оснащены индивидуальными сертификатами компьютеров, установленными в хранилище сертификатов локального компьютера Windows.
Вопрос в том, существует ли способ, которым приложение Java как служба Windows может найти его через «SunMSCAPI» в хранилище сертификатов «Windows-MY».
Я могу запустить службу от имени локального пользователя и «увидеть» личный сертификат этого пользователя, так что это может быть обходным путем со всеми известными недостатками (например, служба больше не запускается при изменении пароля пользователя). Я попытался запустить службу для нескольких разных пользователей (пользователя службы, пользователя сети и т. Д.), Но она никогда не «видит» личные сертификаты хранилища сертификатов локального компьютера.
Я много читал и искал о «SunMSCAPI» и о том, как управлять сертификатами в Windows и получать к ним доступ с Java, поэтому, боюсь, это вообще невозможно, но, возможно, кто-то знает, какого технического пользователя использовать и какая настройка / конфигурация делает трюк.
Комментарии:
1. Наконец я нашел это: bugs.openjdk.java.net/browse/JDK-6782021 ; Я боюсь, что, вероятно, так оно и есть.