Мне нужно установить сертификат из приложения Java для многих людей. Я хочу использовать программу одним щелчком мыши или пакетный файл, чтобы импортировать его в качестве доверенного сертификата (в Панель управления-> Безопасность-> Сертификат). Тогда им не нужно нажимать всегда разрешать первый раз, когда они используют приложение.
Я извлек необходимый сертификат как a, так .csr
и a .cer
( .csr
через панель управления и .cer
через keytool). Теперь мне нужно вернуть один из них без каких-либо нажатий в меню.
Я не очень понимаю документацию по импорту .cer
с помощью keytool и хотел бы привести пример. Или есть более простой способ, чем использовать keytool?
источник
Концепция цепочки доверия для Java keytool и подписанных приложений предполагает, что пользователь подтвердит доверие, приняв утвердительное действие. В этом случае пользователь импортирует открытый ключ, связанный с издателем кода, в свое хранилище ключей, для чего требуется, чтобы у него было хранилище ключей Java и пароль, связанный с ним. См. Http://java.sun.com/developer/onlineTraining/Programming/JDCBook/signed.html раздел с указанием -
Это представляет значительную проблему, поэтому поведение по умолчанию состоит в том, чтобы запускать подписанные приложения с диалоговым окном OK, к которому вы пытаетесь обратиться. Удаленный доступ / создание хранилищ ключей Java для других противоречит проекту безопасности.
источник
У нас была похожая проблема, когда мы пытались избежать всплывающих окон с сертификатами на подписанных апплетах Мы нашли исправление, это не красиво, но, похоже, до сих пор работало. У каждого пользователя есть хранилище ключейrust.certs (в зависимости от операционной системы, в которой он находится
<username>/AppData...Sun/Java/Deployment/trusted.certs
), которое генерируется при первом обращении к апплету на данном компьютере. Вы можете сделать так, чтобы скрипт запуска заменял этот файл для каждого пользователя из центрального места. Чтобы создать новыйtrusted.certs
файл, мы только что приняли сертификаты на одном компьютере, который нам нужен, и затем скопировали весь этотtrusted.certs
склад ключей на новый компьютер.Загрузка в хранилище ключей центральных сертификатов для JRE у нас не сработала, поэтому мы пошли другим путем. Это ужасно, и если у вас есть пароль к этому хранилищу ключей, вы также можете установить его с помощью пакетного скрипта, как описано выше, но мы это сделали.
Этот подход был наиболее целесообразным для нас, поскольку он работал для каждого пользователя по отдельности, и поскольку он привязан к входу в систему, он позволяет осуществлять централизованное администрирование и массовые обновления.
источник
В
C:\Windows\Sun\Java\Deployment
создать файл с именемdeployment.config
.Содержимое этого файла должно быть:
Создайте другой файл в том же месте с именем
deployment.properties
и включите эту строку в deploy.properties:также скопируйте доверенный сертификат из профиля пользователя со всеми необходимыми сертификатами
c:\windows\sun\java\deployments
.Все сертификаты, содержащиеся в этом файле, теперь отображаются на панели управления Java в разделе «Системные / доверенные сертификаты».
Вы также можете сделать это с большинством других свойств Java, включив их в
deployment.properties
файл, например:Первая строка устанавливает свойство, вторая (с
.locked
в конце) не позволяет пользователям изменять свойства в панели управления Java.Вы также можете управлять списком исключений сайта, создав файл в том же месте с именем exception.sites и добавив веб-адреса в этот файл (по одному сайту в строке) и включив эту строку в
deployment.properties
:эта ссылка объяснит большинство настраиваемых свойств:
http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/jcp/properties.html
источник