Keytool — это утилита командной строки, для управления ключами или сертификатами, а так же хранилищами ключей. Она позволяет пользователям управлять своими собственными парами открытых и закрытых ключей и связанными сертификатами для использования при аутентификации, где от пользователя, это требует конечный сервис или службах целостности данных и аутентификации с использованием цифровых подписей. Keytool также позволяет пользователям администрировать секретные ключи, используемые при симметричном шифровании/дешифровании (например, DES). Пользователь имеет возможность самостоятельно генерировать эти пары ключей, после чего он их сохраняет в хранилище ключей (keystore).
СЛУЖБЕ СТИМ НА ВАШЕМ КОМПЬЮТЕРЕ ТРЕБУЕТСЯ ОБСЛУЖИВАНИЕ || 100% РЕШЕНИЕ
Keystore — это защищенный файл или правильнее сказать база данных, которая выступает в роли специального, защищенного хранилища открытых ключей, сертификатов, секретных ключей.
Закрытый и открытый ключи используются в асимметричном шифровании. Открытый ключ может иметь связанный сертификат. Сертификат — это цифровой документ, удостоверяющий личность человека, организации или устройства, претендующего на владение открытым ключом. Сертификат обычно имеет цифровую подпись проверяющей стороны в качестве доказательства (Удостоверяющие центры).
Секретные ключи используются в симметричном шифровании. Во многих случаях симметричные ключи согласовываются при настройке безопасного соединения. Поэтому вы будете чаще хранить открытые и закрытые ключи, KeyStore чем секретные ключи.
Все это многообразие используется приложениями Java для:
- Работы HTTPS соединений
- Аутентификации
- Шифрования
Keystore умеет работать в ситуации, когда в процессе работы необходима аутентификация сервера и клиента, где все реализовано с помощью SSL соединения, подразумевающее использование приватных ключей и сертификатов и так же keystore применяется при односторонней аутентификации, но только на стороне сервера. Java KeyStore представлен классом java.security.KeyStore. Поскольку KeyStore общедоступен, пользователи JDK могут создавать дополнительные приложения безопасности, которые его используют.
- pkcs12 — это один из типов хранилища, заточенный чисто под хранение и перенос закрытых ключей пользователя, сертификатов.
- jceks — сторонняя разработка хранилища, отличная более стойким шифрованием на основе triple DES. Позволяет обновлять существующие jks-хранилища до jceks
- jks — это самый обычный, стандартный тип хранилища, в виде простого файла имеющего расширение jks («java key storage»), устанавливается по умолчанию и, поэтому, применяется наиболее часто.
Реализации Keystore основаны на провайдере. Более конкретно, интерфейсы приложений, предоставляемые KeyStore, реализованы в терминах «Интерфейс поставщика услуг» (Service Provider Interface — SPI). То есть существует соответствующий абстрактный класс KeystoreSpi, также в пакете java.security, который определяет методы интерфейса поставщика услуг, которые должны реализовывать » провайдеры-поставщики». (Термин «поставщик» относится к пакету или набору пакетов, которые предоставляют конкретную реализацию подмножества служб, к которым может обращаться API безопасности Java.)
Как исправить «Установку службы Steam»
Приложения могут выбирать различные типы реализаций хранилища ключей от разных поставщиков, используя фабричный метод getInstance, предоставленный в классе KeyStore . Тип хранилища ключей определяет хранилище и формат данных информации хранилища ключей, а также алгоритмы, используемые для защиты личных ключей в хранилище ключей и целостности самого хранилища ключей. Реализации Keystore разных типов несовместимы. keytool работает с любой файловой реализацией хранилища ключей. (Он обрабатывает расположение хранилища ключей, которое ему передается в командной строке, как имя файла и преобразует его в FileInputStream, из которого он загружает информацию о хранилище ключей.) Инструменты jarsigner и policytool, с другой стороны, могут читать хранилище ключей из любого места, которое можно указать с помощью URL.
Если вы не укажете явно тип хранилища ключей, инструменты выберут реализацию хранилища ключей просто на основании значения свойства keystore.type, указанного в файле свойств безопасности. Файл свойств безопасности называется java.security и находится в каталоге свойств безопасности JDK, java.home/lib/security. Каждый инструмент получает значение keystore.type, а затем проверяет все установленные на данный момент провайдеры, пока не найдет того, который реализует хранилища ключей этого типа. Затем он использует реализацию хранилища ключей от этого провайдера.
Где хранится Keystore и что такое алиас
Любая созданная запись в хранилище ключей Keystore может иметь уникальный псевдоним (алиас — alias). В документации, настоятельно рекомендуется называть алиасы записей Keystore другими именами, отличными от основных. Простой пример, допустим, у вас запись называется root.pyatilistnik.org, вы можете задать алиас 5org. В стандартной реализации каждый ключ в хранилище защищается паролем; кроме того, всё хранилище целиком может быть защищено отдельным паролем. Если вы ничего не меняли, то стандартное расположение хранилища сертификатов находится по пути jre/lib/security/cacerts (пароль по умолчанию- changeit).
Утилита Keytool входит в состав Java SDK (или JRE), в большинстве компьютеров в основном установлена JRE версия. В Windows данную утилиту можно найти по пути:
C:Program Files (x86)Javajre1.8.0_201bin
Тут все зависит от разрядности Java. На скриншоте отмечен файл Keytool.exe.
cd C:Program Files (x86)Javajre1.8.0_201bin или cd C:Program FilesJavajre1.8.0_201bin (Хочу отметить, что у вас будет своя версия отличная моей jre1.8.0_201)
Далее вы просто пишите keytool.exe и нажимаете Enter, в результате чего вы увидите справку по утилите.
Так же утилиту keytool.exe вы можете запускать и в оболочке PowerShell. Откройте ее от имени администратора или другого пользователя с аналогичными правами. Для этого в оболочке введите:
cd «C:Program Files (x86)Javajre1.8.0_201bin»
После чего введите .keytool.exe
- Получение справки по утилите Keytool. Первое, что я хочу, чтобы вы научились, это использование справки, чтобы представлять, как строится конструкция команд и их возможности. Вводим просто Keytool, у вас появятся основные ключи, которые покажут, что вы можете делать через утилиту
C:Program Files (x86)Javajre1.8.0_201bin>keytool.exe
Key and Certificate Management Tool
-certreq — генерация CSR запроса
-changealias — изменить запись алиаса
-delete — удалить запись
-exportcert — экспортировать сертификат
-genkeypair — генерация пары ключей
-genseckey — генерация секретного ключа
-gencert — генерация сертификата из csr запроса
-importcert — импорт сертификата или цепочки
-importpass — импорт паролей
-importkeystore — импорт одной или нескольких записей из другого Keystore
-keypasswd — изменить пароль у записи
-list — список всех записей в хранилище сертификатов
-printcert — вывод содержимого сертификата
-printcertreq — вывод содержимого CSR запроса
-printcrl — вывод содержимого CRL запроса
-storepasswd — изменить пароль на Keystore
Далее, чтобы получить дополнительные ключи по командам из первого списка, вам необходимо добавить ключ -help. Например, я хочу понять как строится команда по генерации пары ключей, для этого я пишу:
keytool.exe -genkeypair -help и получаю вывод дополнительных ключей:
-alias alias name of the entry to process
-keyalg key algorithm name
-keysize key bit size
-sigalg signature algorithm name
-destalias destination alias
-dname distinguished name
-startdate certificate validity start date/time
-ext X.509 extension
-validity validity number of days
-keypass key password
-keystore keystore name
-storepass keystore password
-storetype keystore type
-providername provider name
-providerclass provider class name
-providerarg provider argument
-providerpath provider classpath
-v verbose output
-protected password through protected mechanism
- Создание самоподписного сертификата и файла хранилища сертификатов. Наверняка, это самый популярный сценарий, для чего используется утилита Keytool. Чтобы сгенерировать пару ключей в новом Keystore или уже существующем, вам необходимо выполнить:
keytool -genkey -alias pyatilistnik.org -keypass 12345678 -keyalg RSA -validity 730 -keystore keystore.jks -keysize 2048
В результате выполнения данной команды, у вас будет создан самоподписный сертификат, сроком на два года (730 дней), ключи будут RSA в виде 2048 бит, с псевдонимом pyatilistnik.org. Располагаться они будут в хранилище ключей с именем keystore.jks, если файла нет ,то он будет создан автоматически. Закрытый ключ будет защищен паролем установленным в ключе -keypass, в данном примере 12345678. Открытый ключ, это и будет самоподписанный сертификат. Советую вам самим устанавливать все параметры, в противном случае при генерации вы будите отвечать на дополнительные вопросы, и если вы все оставите по умолчанию, то например параметры по умолчанию для алиаса будут mykey, или алгоритм шифрования SHA1withDSA.
Во время генерации вам необходимо заполнить следующую информацию:
- What is your first and last name — Сюда можно записать адрес сайта
- What is the name of your organizational unit? — Как называется ваша организационная единица, можно указать название организации
- What is the name of your organization? — имя вашей организации
- What is the name of your City or Locality? — Географическое расположение
- What is the name of your State or Province? — штат или область
- What is the two-letter country code for this unit? — Страна, заполняется в виде двух букв в международном стандарте
- Distinguished Name — тут просто пишем Yes
В результате чего у вас будет сгенерирован ваш сертификат, и если файла keystore.jks не было, то он будет создан.
- Создание стандартного хранилища сертификатов отдельной командой:
KeyStore keyStore = KeyStore.getInstance(KeyStore.getDefaultType());
- Создание хранилища формата PKCS12
Источник: pyatilistnik.org
Правильный способ установки сертификата PEM в Android
Я декодирую приведенную выше строку PEM в массив байтов:
byte[] pemBytes = Base64.decode( CERT_STR.replaceAll(«——(BEGIN|END) CERTIFICATE——«, «») .replaceAll(«n», «») .getBytes(«UTF-8»), Base64.DEFAULT );
Я пытаюсь программно установить сертификат PEM на свой телефон Android, используя следующий код:
Intent intent = KeyChain.createInstallIntent(); // because my PEM only contains a certificate, no private key, so I use EXTRA_CERTIFICATE intent.putExtra(KeyChain.EXTRA_CERTIFICATE, pemBytes);// above PEM bytes intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(intent);
При запуске моего кода (на устройстве Android 7) приложение для установки системного сертификата Android открывает окно, когда я нажимаю кнопку «ОК» в этом окне, я получаю следующий журнал:
java.io.IOException: stream does not represent a PKCS12 key store at com.android.org.bouncycastle.jcajce.provider.keystore.pkcs12.PKCS12KeyStoreSpi.engineLoad(PKCS12KeyStoreSpi.java:793) at java.security.KeyStore.load(KeyStore.java:1247) at com.android.certinstaller.CredentialHelper.loadPkcs12Internal(CredentialHelper.java:396) at com.android.certinstaller.CredentialHelper.extractPkcs12Internal(CredentialHelper.java:364) at com.android.certinstaller.CredentialHelper.extractPkcs12(CredentialHelper.java:354) at com.android.certinstaller.CertInstaller$1.doInBackground(CertInstaller.java:328) at com.android.certinstaller.CertInstaller$1.doInBackground(CertInstaller.java:327)
Мои вопросы:
- Я использовал EXTRA_CERTIFICATE и установил для него intent , я НЕ использую EXTRA_PKCS12, но из журнала , Система Android думает, что я устанавливаю хранилище ключей PKCS#12. Почему?
- Как правильно программно установить сертификат PEM в Android?
Источник: question-it.com
Stream does not represent a pkcs12 keystore как исправить ошибку
В статье освещены основные проблемы при работе с сертификатами (ключами) ЭЦП НУЦ РК:
-невозможно зайти в кабинет налогоплательщика, в egov.kz и др. сервисы еПравительства РК.
-невозможно подписать, отправить документ, заявку и т.п.
В основе правильной работы большинства сервисов электронного правительства РК лежит установка утилиты NCA Layer, которая также содержит корневые сертификаты удостоверяющего центра. Поэтому, даже если какой-либо портал (например ЭСФ или кабинет налогоплательщика) не использует в работе данную утилиту, мы все же рекомендуем установить (обновить) ее.
ШАГ 1. Проверьте утилиту NCA Layer.
Если утилита никогда не устанавливалась то следует скачать ее и установить с сайта удостоверяющего центра по ссылке http://pki.gov.kz/index.php/ru/ncalayer
Необходимо проверить обновление утилиты, а также запущена ли она.
Значок этой уттилиты отображается в области уведомлений системы (возле значка переключения языков).
Значок выглядит так:
Если область уведомлений свернута то так:
Если значок есть, нажимаем на него правой кнопкой мыши и выбираем «Выход»
Теперь значок отсутствует. Далее запускаем утилиту NCA Layer с рабочего стола.
Если программа попросит обновится, то:
В окне с предложением обновления нажимаем «Загрузить». Даем в браузере разрешение на скачивание файла. Пока файл загружается, снова выходим из утилиты NCA Layer в области уведомлений, нажав на значок правой кнопкой мыши и выбрав «выход».
Запускаем скачанный файл. Программа сначала попросит удалить старую версию — соглашаемся. Затем, нажав «далее» несколько раз, устанавливаем новую версию утилиты.
Внимание! Во время установки антивирус может запросить разрешение на выполнение установки программы. Соглашаемся. В конце установки, встроенный файрвол Windows, возможно, так же попросит разрешения на использование программой сети интернет.
Так же проверьте установлены или обновлены ли модули утилиты. Для этого в области уведомлений нужно нажать правой кнопкой мыши на значок NCA Layer и выбрать «управление модулями».
Проверьте, какие модули Вам нужны для работы и какие модули нужно установить. Например, модуль для работы на сайте Государственных закупок РК не устанавливается по умолчанию. Выберите этот модуль в списке и нажмите «Установить»
В ДОПОЛНЕНИЕ ВАЖНО!
Если Вы используете Кабинет Налогоплательщика, то также в NCA Layer необходимо установить Модуль knpplugin.
Более подробно о настройка кабинета налогоплательщика Вы можете прочесть в нашей статье https://pokompu.kz/кабинет-налогоплательщика/
Если Вы используете сайт Электронные счет-фактуры, то Вам необходимо установить модуль ЭСФ в NCA Layer
О дополнительных настройках и регистрации на портале ЭСФ читайте в нашей статье https://pokompu.kz/регистрация-на-портале-esf-gov-kz-электронны/
ШАГ 2. Проверяем настройки сертификатов и браузера
Выберите вариант браузера, с которым Вы работаете.
Вариант 1. Google Chrome
Если Вы используете Google Chrome, то дополнительные настройки не требуются.
Вариант 2. Mozilla Firefox
Откройте браузер Mozilla Firefox
Прокрутите вниз страницы и скачайте корневые сертификаты.
Скопируйте и вставьте в адрес браузера firefox строку about:preferences#advanced или нажмите настройки — дополнительные — сертификаты.
Далее щелкните «просмотр сертификатов» и выберите вкладку «Центры Сертификации»:
Жмем «импортировать» и выбираем по порядку все 4 корневых сертификата, которые Вы скачали.
Закрываем браузер Firefox , открываем заново и пробуем воспользоваться сервисом электронного правительства.
Вы можете также посмотреть короткое видео, как быстро проверить все настройки ЭЦП в компьютере (данное видео устарело, но в целом верно отражает настройки).
Не удалось решить проблему? Обращайтесь к нам через
форму обратной связи.
Или задавайте вопросы в комментариях ниже.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.
Already on GitHub?
Sign in
to your account
Источник: koshelekqiwi.ru
В статье освещены основные проблемы при работе с сертификатами (ключами) ЭЦП НУЦ РК:
-невозможно зайти в кабинет налогоплательщика, в egov.kz и др. сервисы еПравительства РК.
-невозможно подписать, отправить документ, заявку и т.п.
В основе правильной работы большинства сервисов электронного правительства РК лежит установка утилиты NCA Layer, которая также содержит корневые сертификаты удостоверяющего центра. Поэтому, даже если какой-либо портал (например ЭСФ или кабинет налогоплательщика) не использует в работе данную утилиту, мы все же рекомендуем установить (обновить) ее.
ШАГ 1. Проверьте утилиту NCA Layer.
Если утилита никогда не устанавливалась то следует скачать ее и установить с сайта удостоверяющего центра по ссылке http://pki.gov.kz/index.php/ru/ncalayer
Необходимо проверить обновление утилиты, а также запущена ли она.
Значок этой уттилиты отображается в области уведомлений системы (возле значка переключения языков).
Значок выглядит так:
Если область уведомлений свернута то так:
Если значок есть, нажимаем на него правой кнопкой мыши и выбираем «Выход»
Теперь значок отсутствует. Далее запускаем утилиту NCA Layer с рабочего стола.
Если программа попросит обновится, то:
В окне с предложением обновления нажимаем «Загрузить». Даем в браузере разрешение на скачивание файла. Пока файл загружается, снова выходим из утилиты NCA Layer в области уведомлений, нажав на значок правой кнопкой мыши и выбрав «выход».
Запускаем скачанный файл. Программа сначала попросит удалить старую версию — соглашаемся. Затем, нажав «далее» несколько раз, устанавливаем новую версию утилиты.
Внимание! Во время установки антивирус может запросить разрешение на выполнение установки программы. Соглашаемся. В конце установки, встроенный файрвол Windows, возможно, так же попросит разрешения на использование программой сети интернет.
Так же проверьте установлены или обновлены ли модули утилиты. Для этого в области уведомлений нужно нажать правой кнопкой мыши на значок NCA Layer и выбрать «управление модулями».
Проверьте, какие модули Вам нужны для работы и какие модули нужно установить. Например, модуль для работы на сайте Государственных закупок РК не устанавливается по умолчанию. Выберите этот модуль в списке и нажмите «Установить»
В ДОПОЛНЕНИЕ ВАЖНО!
Если Вы используете Кабинет Налогоплательщика, то также в NCA Layer необходимо установить Модуль knpplugin.
Более подробно о настройка кабинета налогоплательщика Вы можете прочесть в нашей статье https://pokompu.kz/кабинет-налогоплательщика/
Если Вы используете сайт Электронные счет-фактуры, то Вам необходимо установить модуль ЭСФ в NCA Layer
О дополнительных настройках и регистрации на портале ЭСФ читайте в нашей статье https://pokompu.kz/регистрация-на-портале-esf-gov-kz-электронны/
ШАГ 2. Проверяем настройки сертификатов и браузера
Выберите вариант браузера, с которым Вы работаете.
Вариант 1. Google Chrome
Если Вы используете Google Chrome, то дополнительные настройки не требуются.
[свернуть]
Вариант 2. Mozilla Firefox
Откройте браузер Mozilla Firefox
Зайдите на официальный сайт >>> НУЦ РК <<<, чтобы установить корневые сертификаты.
Прокрутите вниз страницы и скачайте корневые сертификаты.
Скопируйте и вставьте в адрес браузера firefox строку about:preferences#advanced или нажмите настройки — дополнительные — сертификаты.
Далее щелкните «просмотр сертификатов» и выберите вкладку «Центры Сертификации»:
Жмем «импортировать» и выбираем по порядку все 4 корневых сертификата, которые Вы скачали.
Закрываем браузер Firefox , открываем заново и пробуем воспользоваться сервисом электронного правительства.
[свернуть]
Вы можете также посмотреть короткое видео, как быстро проверить все настройки ЭЦП в компьютере (данное видео устарело, но в целом верно отражает настройки).
Не удалось решить проблему? Обращайтесь к нам через
форму обратной связи.
Или задавайте вопросы в комментариях ниже.
-
Summary
-
Files
-
Reviews
-
Support
-
Mailing Lists
-
News
-
Discussion
-
External Link ▾
- Donate
- Browse Git
Menu
▾
▴
CryptoToken activation failed: stream does not represent a PKCS12 key store
Created:
2015-07-16
Updated:
2015-07-24
-
Hi everyone,
I installed ejbca_ce_6_3_1_1 and jboss-as-6.0.0.Final, when I log in the admin page, it shows that Crypto Token State is off-line.
I try to activate crypto token ManagementCA, the error comes out:
CryptoToken activation failed: stream does not represent a PKCS12 key storeDoes anyone know what’s wrong with it?
thank you.
-
here is the server log:
2015-07-16 18:18:19,176 [STDOUT] (pool-62-thread-1) Reloading CA certificate cache.
2015-07-16 18:18:21,222 [STDOUT] (pool-15-thread-1) Error activating Crypto Token: with id -105709191. stream does not represent a PKCS12 key store
2015-07-16 18:18:21,223 [STDOUT] (pool-15-thread-1) java.io.IOException: stream does not represent a PKCS12 key store
Last edit: Jie 2015-07-16
-
jboss-as-6.0.0 is not an application server I recommend. You should use JBoss 7.1.1.GA instead, or JBoss EAP 6.
Regards,
Tomas-
Thanks Tomas, it works fine after I use jboss-as-7.1.1.Final instead of jboss-as-6.0.0.Final.
However, when I use ws cli, another exception appears:
java.net.SocketException: Software caused connection abort: recv failedDo you have any idea about this exception?
The code is as below:
CryptoProviderTools.installBCProvider(); String urlstr = "https://localhost:8443/ejbca/ejbcaws/ejbcaws?wsdl"; System.setProperty("javax.net.ssl.trustStore", "D:/Program_Files/ejbca_ce_6_3_1_1/p12/truststore.jks"); System.setProperty("javax.net.ssl.trustStorePassword", "changeit"); System.setProperty("javax.net.ssl.keyStore", "D:/Program_Files/ejbca_ce_6_3_1_1/p12/superadmin.p12"); System.setProperty("javax.net.ssl.keyStorePassword", "ejbca"); System.setProperty("javax.net.ssl.keyStoreType", "pkcs12"); Provider tlsProvider = new TLSProvider(); Security.addProvider(tlsProvider); Security.setProperty("ssl.TrustManagerFactosry.algorithm", "AcceptAll"); Security.setProperty("ssl.KeyManagerFactory.algorithm", "NewSunX509"); QName qname = new QName("http://ws.protocol.core.ejbca.org/", "EjbcaWSService"); EjbcaWSService service=null; try { service = new EjbcaWSService(new URL(urlstr), qname); } catch (MalformedURLException e) { e.printStackTrace(); } EjbcaWS ejbcaraws = service.getEjbcaWSPort(); System.out.println("Version: " + ejbcaraws.getEjbcaVersion());
And the stack trace is in the attachment.
Many thanks for your help.
-
Try using the EJBCA ClientToolbox to test WS connectivity. This to ensure your keystores work correctly,then you can conclude if the issue is in your code or not.
-
Thanks for your reply.
I type the following command in command line:
ejbcaClientToolBox.bat ejbcawsracli finduser USERNAME EQUALS «superadmin»The user superadmin is found successfully.
Does that mean there is something wrong with my code?
I compare my code with class EJBCAWSRABaseCommand but find no errors. Do you have any suggestions regarding my code as shown before?Thank you.
-
It works fine now!
My code has no problem but my eclipse JBoss runtime is set to JBoss 6.0.
All things go well after I change JBoss runtime to 7.1.
Hope this would be helpful for others who meet the same problem.And thank Tomas again for kindly help.
Last edit: Jie 2015-07-24
Log in to post a comment.
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and
privacy statement. We’ll occasionally send you account related emails.
Already on GitHub?
Sign in
to your account
Closed
marksherman opened this issue
Jan 14, 2016
· 12 comments
Assignees
Comments
The client secret, needed to use a fusion tables service account, is now downloadable as a JSON file. There is no longer an option to download a .p12 file, which is what the FusionTablesControl component requires.
If the JSON file is attached, queries return the error «stream does not represent a PKCS12 key store»
That means App Inventor can’t be set up to use a new service account.
Here is the new JSON format (whitespace and client_id redaction by me)
{ "installed": { "client_id":"000000000000000000000", "project_id":"grounded-style-118918", "auth_uri":"https://accounts.google.com/o/oauth2/auth", "token_uri":"https://accounts.google.com/o/oauth2/token", "auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs" } }
@halatmit @jsheldonmit @jisqyv @afmckinney
@marksherman I just created a service account and a p12 file was still an option…
That said, the p12 option is called «legacy» and the JSON path is preferred. So I will look into using a JSON key. NOTE: We will have to support both for a period of time, otherwise we will break existing projects that have and use p12 keys.
@marksherman Did you go to the page to create a service credential? When I did, it gave me two radio buttons to choose from:
@marksherman Btw. I believe I can do the change and still be backward compatible, but it will be ugly. The hard part is I likely will have to upgrade the version of the oauth2 library we are using AND all of its dependencies which may break other parts of App Inventor which will require fixing.
Wow, that’s hidden. If you click on the service account itself, you get this:
With no indication that there’s another way to get it.
The secret is to not click on the service account, or click any of the TWO downloadJSON buttons on that page, but to go back up to «New Credentials» and select «service account key».
So no need for an immediate change, I’ll highlight that path in the instructions.
And still, I doubt most fourth grade teachers will be able to get it on the first, unaided try.
While you’re editi the Docs, should we simply tell people to use Service
Authorization and not worry about the other Authorization — or at least
describe things so that Service is the nornal way and describe the other a
an option (after we get it to work)?
== Hal Abelson
hal@mit.edu
Prof. of Comp. Sci. and Eng.
MIT Dept. of Elec. Eng. and Comp. Sci.
On Fri, Jan 15, 2016 at 6:14 PM, Mark Sherman notifications@github.com
wrote:
Wow, that’s hidden. If you click on the service account itself, you get
this:
[image: screen shot 2016-01-15 at 6 10 38 pm]
https://cloud.githubusercontent.com/assets/2035149/12367828/814f976e-bbb3-11e5-98d7-4e708a4f29e9.png
With no indication that there’s another way to get it.The secret is to not click on the service account, or click any of the TWO
downloadJSON buttons on that page, but to go back up to «New Credentials»
and select «service account key».So no need for an immediate change, I’ll highlight that path in the
instructions.And still, I doubt most fourth grade teachers will be able to get it on
the first, unaided try.—
Reply to this email directly or view it on GitHub
#675 (comment)
.
That’s actually my plan- not even mention the half-good solution
On Fri, Jan 15, 2016, 7:51 PM hal notifications@github.com wrote:
While you’re editi the Docs, should we simply tell people to use Service
Authorization and not worry about the other Authorization — or at least
describe things so that Service is the nornal way and describe the other a
an option (after we get it to work)?== Hal Abelson
hal@mit.edu
Prof. of Comp. Sci. and Eng.
MIT Dept. of Elec. Eng. and Comp. Sci.On Fri, Jan 15, 2016 at 6:14 PM, Mark Sherman notifications@github.com
wrote:Wow, that’s hidden. If you click on the service account itself, you get
this:
[image: screen shot 2016-01-15 at 6 10 38 pm]
<
https://cloud.githubusercontent.com/assets/2035149/12367828/814f976e-bbb3-11e5-98d7-4e708a4f29e9.pngWith no indication that there’s another way to get it.
The secret is to not click on the service account, or click any of the
TWO
downloadJSON buttons on that page, but to go back up to «New Credentials»
and select «service account key».So no need for an immediate change, I’ll highlight that path in the
instructions.And still, I doubt most fourth grade teachers will be able to get it on
the first, unaided try.—
Reply to this email directly or view it on GitHub
<
#675 (comment).
—
Reply to this email directly or view it on GitHub
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_mit-2Dcml_appinventor-2Dsources_issues_675-23issuecomment-2D172138425&d=BQMFaQ&c=lqHimbpwJeF7VTDNof4ddnO1LTp7jTaMHJ2UAxZwrfY&r=bJEpcfB0VesGOEw6RgFQuGv3sSGrcpElZuIXV_waLqM&m=c62XON7Q_D1vcmBqeevMVhv1rHgndVYQBIzy7Q2sLeA&s=RFiOgbJKXum38BkPy8NBhpgBp9IQE_1sg6bX_Vmvucw&e=
.
+1
== Hal Abelson
hal@mit.edu
Prof. of Comp. Sci. and Eng.
MIT Dept. of Elec. Eng. and Comp. Sci.
On Fri, Jan 15, 2016 at 7:59 PM, Mark Sherman notifications@github.com
wrote:
That’s actually my plan- not even mention the half-good solution
On Fri, Jan 15, 2016, 7:51 PM hal notifications@github.com wrote:
While you’re editi the Docs, should we simply tell people to use Service
Authorization and not worry about the other Authorization — or at least
describe things so that Service is the nornal way and describe the other
a
an option (after we get it to work)?== Hal Abelson
hal@mit.edu
Prof. of Comp. Sci. and Eng.
MIT Dept. of Elec. Eng. and Comp. Sci.On Fri, Jan 15, 2016 at 6:14 PM, Mark Sherman notifications@github.com
wrote:Wow, that’s hidden. If you click on the service account itself, you get
this:
[image: screen shot 2016-01-15 at 6 10 38 pm]
<https://cloud.githubusercontent.com/assets/2035149/12367828/814f976e-bbb3-11e5-98d7-4e708a4f29e9.png
With no indication that there’s another way to get it.
The secret is to not click on the service account, or click any of the
TWO
downloadJSON buttons on that page, but to go back up to «New
Credentials»
and select «service account key».So no need for an immediate change, I’ll highlight that path in the
instructions.And still, I doubt most fourth grade teachers will be able to get it on
the first, unaided try.—
Reply to this email directly or view it on GitHub
<#675 (comment)
.
—
Reply to this email directly or view it on GitHub
<
https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_mit-2Dcml_appinventor-2Dsources_issues_675-23issuecomment-2D172138425&d=BQMFaQ&c=lqHimbpwJeF7VTDNof4ddnO1LTp7jTaMHJ2UAxZwrfY&r=bJEpcfB0VesGOEw6RgFQuGv3sSGrcpElZuIXV_waLqM&m=c62XON7Q_D1vcmBqeevMVhv1rHgndVYQBIzy7Q2sLeA&s=RFiOgbJKXum38BkPy8NBhpgBp9IQE_1sg6bX_Vmvucw&e=.
—
Reply to this email directly or view it on GitHub
#675 (comment)
.
The P12 is still available. Instructions have been updated to reflect how to get it.
Я разрабатываю проект Android.
У меня есть строка сертификата PEM:
-----BEGIN CERTIFICATE-----
MIIEczCCA1ugAwIBAgIBADANBgkqhkiG9w0BAQQFAD..AkGA1UEBhMCR0Ix
EzARBgNVBAgTClNvbWUtU3RhdGUxFDASBgNVBAoTC0..0EgTHRkMTcwNQYD
VQQLEy5DbGFzcyAxIFB1YmxpYyBQcmltYXJ5IENlcn..XRpb24gQXV0aG9y
...MANY LINES...
It8una2gY4l2O//on88r5IWJlm1L0oA8e4fR2yrBHX..adsGeFKkyNrwGi/
7vQMfXdGsRrXNGRGnX+vWDZ3/zWI0joDtCkNnqEpVn..HoX
-----END CERTIFICATE-----
(присвоенная строка сертификата переменной с именем CERT_STR
)
Я декодирую выше строку PEM в массив байтов:
byte[] pemBytes = Base64.decode(
CERT_STR.replaceAll("-----(BEGIN|END) CERTIFICATE-----", "")
.replaceAll("n", "")
.getBytes("UTF-8"),
Base64.DEFAULT
);
Я пытаюсь программно установить сертификат PEM на свой Android-телефон, выполнив следующий код:
Intent intent = KeyChain.createInstallIntent();
// because my PEM only contains a certificate, no private key, so I use EXTRA_CERTIFICATE
intent.putExtra(KeyChain.EXTRA_CERTIFICATE, pemBytes);// above PEM bytes
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
Когда я запускаю свой код (на устройстве Android 7), приложение установщика системных сертификатов Android всплывает окно, когда я нажимаю кнопку «ОК» этого окна, я получаю следующий журнал:
java.io.IOException: stream does not represent a PKCS12 key store
at com.android.org.bouncycastle.jcajce.provider.keystore.pkcs12.PKCS12KeyStoreSpi.engineLoad(PKCS12KeyStoreSpi.java:793)
at java.security.KeyStore.load(KeyStore.java:1247)
at com.android.certinstaller.CredentialHelper.loadPkcs12Internal(CredentialHelper.java:396)
at com.android.certinstaller.CredentialHelper.extractPkcs12Internal(CredentialHelper.java:364)
at com.android.certinstaller.CredentialHelper.extractPkcs12(CredentialHelper.java:354)
at com.android.certinstaller.CertInstaller$1.doInBackground(CertInstaller.java:328)
at com.android.certinstaller.CertInstaller$1.doInBackground(CertInstaller.java:327)
Мои вопросы:
-
Я использовал EXTRA_CERTIFICATE и установил его в
intent
, я НЕ использую EXTRA_PKCS12, но из журнала система Android думает, что я устанавливаю хранилище ключей PKCS # 12. Почему? -
Каков правильный способ программной установки сертификата PEM в Android?
Что делать, если возникает ошибка подписания документов ЭЦП?
В связи с модернизацией НУЦ РК программного обеспечения для выдачи регистрационных свидетельств с обновленной структурой и проводимыми в связи с этим техническими работами на стороне НУЦ РК , возможны временные сбои в работе на Евразийском электронном портале функционала подписания документов Электронной цифровой подписью.
При возникновении ошибок подписания документов ЭЦП необходимо:
- При запуске JAVA апплета в блоке Сведения о цифровой подписи открыть настройки
2. В настройках ЭЦП указать ключ по умолчанию, отключить все дополнительные настройки, выделенные флажками
3. Применить настройки, обновить страницу в браузере, нажав кнопку F5 или значок Обновить в адресной строке.
4. После обновления страницы попробовать снова подписать документ ЭЦП.
При подписании документов ЭЦП может также возникнуть проблема с запрашиваемым паролем сертификата авторизации. Если при подписании пользовательского соглашения система выводит подобную ошибку:
Это может означать, что система запрашивает пароль от сертификата авторизации, импортированного в ваш браузер или Java. В этом случае попробуйте не указывать пароль, нажав несколько раз ОК. Вам необходимо дождаться полной загрузки окна Java апплет, чтобы в блоке Сведения о цифровой подписи появились кнопки Настройки, Ключ и Подписать.
В том случае, если у вас не получилось устранить проблему, вполне возможно, что в Java импортирован истекший некорректный сертификат, который мешает вашей работе. Зайдите в меню Пуск, поиск Java — Configure Java — вкладка Security — Manage sertificates:
Убедитесь, что все импортированные сертификаты не просрочены, удалите лишние, попробуйте перезагрузить браузер и подписать соглашение заново.
Что делать, если Java апплет отображается не полностью?
Если у вас при подписании документов Java апплет отображается в следующем виде:
Скорее всего у вас изменились настройки браузера, а именно масштаб браузера менее 100%. Вам необходимо отменить настройки браузера и поставить масштаб 100%, это так же можно сделать путем сочетания клавиш ctrl+0
Что делать, если возникает ошибка с системой безопасности Java?
Если у вас при работе с порталом возникает следующая ошибка:
Это говорит о том, что в целях обеспечения безопасности выполняемые приложения теперь должны входить в список сайтов-исключений (для версий 8u20 и выше). Для добавления нашего сайта в перечень исключений, вам необходимо добавить URL-адрес: https://eep.mitwork.kz/ в список Edit Site List на вкладке «Security» (Безопасность) панели управления Java (в поиске введите Configure Java).
Если добавить в данный список URL-адрес приложения, оно будет выполняться после появления нескольких предупреждений безопасности.
В статье освещены основные проблемы при работе с сертификатами (ключами) ЭЦП НУЦ РК:
-невозможно зайти в кабинет налогоплательщика, в egov.kz и др. сервисы еПравительства РК.
-невозможно подписать, отправить документ, заявку и т.п.
В основе правильной работы большинства сервисов электронного правительства РК лежит установка утилиты NCA Layer, которая также содержит корневые сертификаты удостоверяющего центра. Поэтому, даже если какой-либо портал (например ЭСФ или кабинет налогоплательщика) не использует в работе данную утилиту, мы все же рекомендуем установить (обновить) ее.
ШАГ 1. Проверьте утилиту NCA Layer.
Если утилита никогда не устанавливалась то следует скачать ее и установить с сайта удостоверяющего центра по ссылке http://pki.gov.kz/index.php/ru/ncalayer
Необходимо проверить обновление утилиты, а также запущена ли она.
Значок этой уттилиты отображается в области уведомлений системы (возле значка переключения языков).
Значок выглядит так:
Если область уведомлений свернута то так:
Если значок есть, нажимаем на него правой кнопкой мыши и выбираем «Выход»
Теперь значок отсутствует. Далее запускаем утилиту NCA Layer с рабочего стола.
Если программа попросит обновится, то:
В окне с предложением обновления нажимаем «Загрузить». Даем в браузере разрешение на скачивание файла. Пока файл загружается, снова выходим из утилиты NCA Layer в области уведомлений, нажав на значок правой кнопкой мыши и выбрав «выход».
Запускаем скачанный файл. Программа сначала попросит удалить старую версию — соглашаемся. Затем, нажав «далее» несколько раз, устанавливаем новую версию утилиты.
Внимание! Во время установки антивирус может запросить разрешение на выполнение установки программы. Соглашаемся. В конце установки, встроенный файрвол Windows, возможно, так же попросит разрешения на использование программой сети интернет.
Так же проверьте установлены или обновлены ли модули утилиты. Для этого в области уведомлений нужно нажать правой кнопкой мыши на значок NCA Layer и выбрать «управление модулями».
Проверьте, какие модули Вам нужны для работы и какие модули нужно установить. Например, модуль для работы на сайте Государственных закупок РК не устанавливается по умолчанию. Выберите этот модуль в списке и нажмите «Установить»
В ДОПОЛНЕНИЕ ВАЖНО!
Если Вы используете Кабинет Налогоплательщика, то также в NCA Layer необходимо установить Модуль knpplugin.
Более подробно о настройка кабинета налогоплательщика Вы можете прочесть в нашей статье https://pokompu.kz/кабинет-налогоплательщика/
Если Вы используете сайт Электронные счет-фактуры, то Вам необходимо установить модуль ЭСФ в NCA Layer
О дополнительных настройках и регистрации на портале ЭСФ читайте в нашей статье https://pokompu.kz/регистрация-на-портале-esf-gov-kz-электронны/
ШАГ 2. Проверяем настройки сертификатов и браузера
Выберите вариант браузера, с которым Вы работаете.
Вариант 1. Google Chrome
Если Вы используете Google Chrome, то дополнительные настройки не требуются.
[свернуть]
Вариант 2. Mozilla Firefox
Откройте браузер Mozilla Firefox
Зайдите на официальный сайт >>> НУЦ РК <<<, чтобы установить корневые сертификаты.
Прокрутите вниз страницы и скачайте корневые сертификаты.
Скопируйте и вставьте в адрес браузера firefox строку about:preferences#advanced или нажмите настройки — дополнительные — сертификаты.
Далее щелкните «просмотр сертификатов» и выберите вкладку «Центры Сертификации»:
Жмем «импортировать» и выбираем по порядку все 4 корневых сертификата, которые Вы скачали.
Закрываем браузер Firefox , открываем заново и пробуем воспользоваться сервисом электронного правительства.
[свернуть]
Вы можете также посмотреть короткое видео, как быстро проверить все настройки ЭЦП в компьютере (данное видео устарело, но в целом верно отражает настройки).
Не удалось решить проблему? Обращайтесь к нам через
форму обратной связи.
Или задавайте вопросы в комментариях ниже.
The problem was (I’m shame to admit) storing a different KeyStore
by mistake.
Making sure I work on the same KeyStore
fixed the problem and now it works perfectly.
Comments
-
I wrote an Android application that uses a KeyStore to authenticate SSL connection.
But when I load the p12 file with the right key and stores it with a new one, the next time I try to load it with the new key I get this exception:java.io.IOException: stream does not represent a PKCS12 key store
at com.android.org.bouncycastle.jce.provider.JDKPKCS12KeyStore.engineLoad (JDKPKCS12KeyStore.java:691)
at java.security.KeyStore.load(KeyStore.java:589)What goes wrong?
Thank you very much!
Recents
I wrote an Android application that uses a KeyStore to authenticate SSL connection.
But when I load the p12 file with the right key and stores it with a new one, the next time I try to load it with the new key I get this exception:
java.io.IOException: stream does not represent a PKCS12 key store
at com.android.org.bouncycastle.jce.provider.JDKPKCS12KeyStore.engineLoad (JDKPKCS12KeyStore.java:691)
at java.security.KeyStore.load(KeyStore.java:589)
What goes wrong?
Thank you very much!
asked Jan 27, 2013 at 9:25
Assaf GamlielAssaf Gamliel
11.9k5 gold badges40 silver badges56 bronze badges
The problem was (I’m shame to admit) storing a different KeyStore
by mistake.
Making sure I work on the same KeyStore
fixed the problem and now it works perfectly.
answered Jan 27, 2013 at 9:33
Assaf GamlielAssaf Gamliel
11.9k5 gold badges40 silver badges56 bronze badges