6

Мне нужно установить сертификат из приложения Java для многих людей. Я хочу использовать программу одним щелчком мыши или пакетный файл, чтобы импортировать его в качестве доверенного сертификата (в Панель управления-> Безопасность-> Сертификат). Тогда им не нужно нажимать всегда разрешать первый раз, когда они используют приложение.

Я извлек необходимый сертификат как .csr и .cer (.csr через панель управления и .cer через keytool). Теперь мне нужно вернуть один из них без каких-либо нажатий в меню.

Я не очень понимаю документацию импорта .cer с keytool и хотел бы привести пример. Или есть более простой способ, чем использовать keytool?

4 ответа4

2

Несколько примеров того, как это сделать с помощью "keytool"

Вторая ссылка здесь имеет пример командного файла:

@echo off
echo
echo This will import an X.509 SSL certificate into the keystore for the JVM
specified
echo
echo Press Control+C to abort.
pause
SETLOCAL

rem -------------------------------------------------
rem 1) Set the path to you JVM here
rem -------------------------------------------------
set JAVA_HOME=C:\j2sdk1.4.2_05

rem -------------------------------------------------
rem 2) SET THE CERTIFICATE NAME AND ALIAS HERE
rem -------------------------------------------------
set CERT_NAME=mycert.cer
set CERT_ALIAS=mycert

rem -------------------------------------------------
rem 3) SET THE KEYTOOL PASSWORD HERE
rem -------------------------------------------------
set KEYTOOL_PASS=changeit

rem -------------------------------------------------
rem DO NOT EDIT BELOW THIS LINE
rem -------------------------------------------------
set JAVA_SECURITY=%JAVA_HOME%\jre\lib\security
set CERT=%JAVA_SECURITY%\%CERT_NAME%
%JAVA_HOME%\jre\bin\keytool -import -trustcacerts -keystore %JAVA_SECURITY%\cacerts
-storepass %KEYTOOL_PASS% -noprompt -alias %CERT_ALIAS% -file %CERT%
ENDLOCAL
pause

Какую часть у вас проблемы с пониманием? Есть ли определенный раздел, который не имеет смысла? Вам нужна помощь с командным файлом? Где конкретно вы застреваете? Возможно, я могу помочь более конкретно.

0

В C:\Windows\Sun\Java\Deployment создайте файл с именем deployment.config .

Содержимое этого файла должно быть:

deployment.system.config=file:///C:/Windows/Sun/Java/Deployment/deployment.properties
deployment.system.config.mandatory=false

Создайте еще один файл в том же месте с именем deployment.properties и включите эту строку в deploy.properties:

deployment.system.security.trusted.certs=C\:\\Windows\\Sun\\Java\\Deployment\\trusted.certs

также скопируйте доверенный сертификат из профиля пользователя со всеми необходимыми сертификатами в папку c:\windows\sun\java\deployments .

Все сертификаты, содержащиеся в этом файле, теперь отображаются на панели управления Java в разделе «Системные / доверенные сертификаты».

Вы также можете сделать это с большинством других свойств Java, включив их в файл deployment.properties например:

deployment.javaws.autodownload=NEVER
deployment.javaws.autodownload.locked
deployment.security.level=MEDIUM
deployment.security.level.locked
deployment.security.mixcode=HIDE_RUN
deployment.security.mixcode.locked
deployment.insecure.jres=NEVER
deployment.insecure.jres.locked
deployment.expiration.check.enabled=false
deployment.expiration.check.enabled.locked
deployment.webjava.enabled=true
deployment.webjava.enabled.locked

Первая строка устанавливает свойство, вторая (с .locked в конце) не позволяет пользователям изменять свойства в панели управления Java.

Вы также можете управлять списком исключений сайта, создав файл в том же месте с именем exception.sites и добавив веб-адреса к этому файлу (по одному сайту на строку) и включив эту строку в deployment.properties:

deployment.user.security.exception.sites=C\:\\Windows\\Sun\\Java\\Deployment\\exception.sites

эта ссылка объяснит большинство настраиваемых свойств:

http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/jcp/properties.html

0

У нас была похожая проблема, когда мы пытались избежать появления всплывающих окон с сертификатами на подписанных апплетах. Мы нашли исправление, это не красиво, но, похоже, до сих пор работало. У каждого пользователя есть хранилище ключейrust.certs (в зависимости от ОС оно находится где-то в <username>/AppData...Sun/Java/Deployment/trusted.certs), который создается при первом обращении к апплету на данном компьютере. Вы можете сделать так, чтобы скрипт запуска заменил этот файл для каждого пользователя из центрального места. Для того, чтобы создать новый trusted.certs файл, который мы только приняли сертификаты на одной машине , которую мы хотим там, а затем скопировать , что весь trusted.certs KeyStore на новую машину.

Загрузка в хранилище ключей центрального сертификата для JRE у нас не сработала, поэтому мы пошли другим путем. Это ужасно, и если у вас есть пароль к этому хранилищу ключей, вы также можете установить его с помощью пакетного скрипта, как описано выше, но мы это сделали.

Этот подход был наиболее целесообразным для нас, поскольку он работал для каждого пользователя по отдельности, и поскольку он привязан к входу в систему, он обеспечивает централизованное администрирование и массовые обновления.

0

Концепция цепочки доверия для Java keytool и подписанных приложений предполагает, что пользователь подтвердит доверие, приняв утвердительное действие. В этом случае пользователь будет импортировать открытый ключ, связанный с издателем кода, в свое хранилище ключей, которое требует, чтобы у него было хранилище ключей Java и пароль, связанный с ним. См. Http://java.sun.com/developer/onlineTraining/Programming/JDCBook/signed.html раздел с указанием -

6. Импорт сертификата в качестве доверенного сертификата

Рэй загружает SSignedApplet.jar и CompanyCer.cer в свой домашний каталог. Теперь Ray должен> создать базу данных хранилища ключей (raytore) и импортировать в нее сертификат, используя псевдоним> company. Рэй использует keytool в своем домашнем каталоге, чтобы сделать это: ...

Это представляет значительную проблему, поэтому поведение по умолчанию состоит в том, чтобы запускать подписанные приложения в диалоговом окне OK, к которому вы пытаетесь обратиться. Удаленный доступ / создание хранилищ ключей Java для других противоречит проекту безопасности.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .