Ключевое слово в защите информации
КЛЮЧЕВОЕ СЛОВО
в защите информации
Получить ГОСТ TLS-сертификат для домена (SSL-сертификат)
Добро пожаловать, Гость! Чтобы использовать все возможности Вход или Регистрация.

Уведомление

Icon
Error

Опции
К последнему сообщению К первому непрочитанному
Offline AlexanderOT1  
#1 Оставлено : 10 июля 2020 г. 9:27:53(UTC)
AlexanderOT1

Статус: Участник

Группы: Участники
Зарегистрирован: 05.06.2020(UTC)
Сообщений: 25

Сказал(а) «Спасибо»: 3 раз
Есть тестовый сервер Криптопро
http://testgost2012.cryptopro.ru/certsrv/
http://testgost2012.cryp....ru/certsrv/certcarc.asp

Написано
Чтобы доверять сертификатам, выданным этим центром сертификации, установите эту цепочку сертификатов ЦС.

Пробую импортировать в jcp-2.0.40502, Java7, Linux в cacerts
JCP установлено в Java командой setup_console, ошибок не было при установке.

/opt/java64/1.7.0_72/jre/bin/keytool -importcert -file "./certnew.cer" -alias CryptoPro_CA -keystore "/opt/java64/1.7.0_72/jre/lib/security/cacerts" -storepass changeit

или так

/opt/java64/1.7.0_72/jre/bin/keytool -J-Dkeytool.compat=true -J-Duse.cert.stub=true -provider ru.CryptoPro.JCP.JCP -importcert -file "./certnew.cer" -alias CryptoPro_CA -keystore "/opt/java64/1.7.0_72/jre/lib/security/cacerts" -storepass changeit

В обоих случаях выдается ошибка
keytool error: java.lang.Exception: Input not an X.509 certificate

Пробовал оба варианта:
Загрузка сертификата ЦС
Загрузка цепочки сертификатов ЦС

Пробовал импортировать сертификат ЦС в Windows, экспортировать его в
DER Encoded Binary X.509 (.CER)

Во всех вариантах одна и та же ошибка на Linux
Offline AlexanderOT1  
#2 Оставлено : 10 июля 2020 г. 9:42:55(UTC)
AlexanderOT1

Статус: Участник

Группы: Участники
Зарегистрирован: 05.06.2020(UTC)
Сообщений: 25

Сказал(а) «Спасибо»: 3 раз
Команда
C:\Java\jdk1.7.0_79\jre\bin\keytool -importcert -file "certnew.cer" -alias CryptoPro_CA -keystore "C:\Java\jdk1.7.0_79\jre\lib\security\cacerts" -storepass changeit

На Windows сработала без ошибок
Offline AlexanderOT1  
#3 Оставлено : 10 июля 2020 г. 12:50:11(UTC)
AlexanderOT1

Статус: Участник

Группы: Участники
Зарегистрирован: 05.06.2020(UTC)
Сообщений: 25

Сказал(а) «Спасибо»: 3 раз
Скопировал cacerts из Java (Windows) в Java (Linux).

При попытке получить информацию о сертификате из cacerts он его находит, но выдает ошибку.

/opt/java64/1.7.0_72/jre/bin/keytool -list -v -keystore "/opt/java64/1.7.0_72/jre/lib/security/cacerts" -alias CryptoPro_CA

keytool error: java.security.cert.CertificateException: Certificate contains invalid public key: Unrecognized public key.
java.security.cert.CertificateException: Certificate contains invalid public key: Unrecognized public key.
at com.rsa.cryptoj.o.pk.g(Unknown Source)
at com.rsa.cryptoj.o.pk.<init>(Unknown Source)
at com.rsa.cryptoj.o.pj.<init>(Unknown Source)
at com.rsa.cryptoj.o.pg.a(Unknown Source)
at com.rsa.cryptoj.o.ot.engineGenerateCertificate(Unknown Source)
at java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:339)
at sun.security.provider.JavaKeyStore.engineLoad(JavaKeyStore.java:747)
at sun.security.provider.JavaKeyStore$JKS.engineLoad(JavaKeyStore.java:55)
at java.security.KeyStore.load(KeyStore.java:1214)
at sun.security.tools.KeyTool.doCommands(KeyTool.java:789)
at sun.security.tools.KeyTool.run(KeyTool.java:340)
at sun.security.tools.KeyTool.main(KeyTool.java:333)

Offline Евгений Афанасьев  
#4 Оставлено : 10 июля 2020 г. 15:57:25(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,910
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Здравствуйте.

1. Команда:
Код:

/opt/java64/1.7.0_72/jre/bin/keytool -J-Dkeytool.compat=true -J-Duse.cert.stub=true -provider ru.CryptoPro.JCP.JCP -importcert -file "./certnew.cer" -alias CryptoPro_CA -keystore "/opt/java64/1.7.0_72/jre/lib/security/cacerts" -storepass changeit

некорректная, т.к. вы указали провайдер JCP, а работаете с cacerts, который имеет формат JKS, совершенно незнакомый JCP. Команды для работы с ключами и сертификатами лучше смотреть в руководствах разработчика и администратора в папке Doc дистрибутива, и будут они только с форматами, реализованными в JCP.

Команда:
Код:

C:\Java\jdk1.7.0_79\jre\bin\keytool -importcert -file "certnew.cer" -alias CryptoPro_CA -keystore "C:\Java\jdk1.7.0_79\jre\lib\security\cacerts" -storepass changeit

корректная, т.к. java все равно, какой сертификат устанавливается, и провайдер используется по умолчанию (для JKS).

2.
Цитата:

При попытке получить информацию о сертификате из cacerts он его находит, но выдает ошибку.

/opt/java64/1.7.0_72/jre/bin/keytool -list -v -keystore "/opt/java64/1.7.0_72/jre/lib/security/cacerts" -alias CryptoPro_CA

keytool error: java.security.cert.CertificateException: Certificate contains invalid public key: Unrecognized public key.
java.security.cert.CertificateException: Certificate contains invalid public key: Unrecognized public key.
at com.rsa.cryptoj.o.pk.g(Unknown Source)
at com.rsa.cryptoj.o.pk.<init>(Unknown Source)
at com.rsa.cryptoj.o.pj.<init>(Unknown Source)
at com.rsa.cryptoj.o.pg.a(Unknown Source)
at com.rsa.cryptoj.o.ot.engineGenerateCertificate(Unknown Source)
at java.security.cert.CertificateFactory.generateCertificate(CertificateFactory.java:339)

В работу вмешивается какой-то провайдер com.rsa.cryptoj.

Отредактировано пользователем 10 июля 2020 г. 15:58:02(UTC)  | Причина: Не указана

Offline AlexanderOT1  
#5 Оставлено : 13 июля 2020 г. 23:01:30(UTC)
AlexanderOT1

Статус: Участник

Группы: Участники
Зарегистрирован: 05.06.2020(UTC)
Сообщений: 25

Сказал(а) «Спасибо»: 3 раз
Спасибо, действительно, в \jre\lib\security\java.security есть регистрация нестандартного провайдера.
Может быть есть общие рекомендации, как разрешить этот конфликт, без отключения провайдера?
Судя по всему, провайдер нужен для другого компонента системы.
Offline Евгений Афанасьев  
#6 Оставлено : 14 июля 2020 г. 10:14:06(UTC)
Евгений Афанасьев

Статус: Сотрудник

Группы: Участники
Зарегистрирован: 06.12.2008(UTC)
Сообщений: 3,910
Российская Федерация
Откуда: Крипто-Про

Сказал(а) «Спасибо»: 20 раз
Поблагодарили: 685 раз в 646 постах
Попробуйте указывать провайдер в keytool. Но надо учесть, что это не всегда помогает, так как, например, в случае декодирования открытого ключа сертификата поиск подходящего провайдера происходит по признаку, может ли этот провайдер декодировать ключ (поддерживает ли OID алгоритма ключа), и тогда важно положение провайдера в списке java.security (первый подходящий из списка будет декодировать). Обычно работу с ключами на иностранных алгоритмах обеспечивает встроенный провайдер типа Sun. Возможно, в списке java.security провайдер com.rsa.cryptoj (судя по названию пакета, он работает с иностранными алгоритмами) находится в начале списка и потому перехватывает обращения keytool к сертификату. Попробуйте переместить com.rsa.cryptoj в конец списка в java.security, сохраняя правильную нумерацию.

Отредактировано пользователем 14 июля 2020 г. 10:16:00(UTC)  | Причина: Не указана

RSS Лента  Atom Лента
Пользователи, просматривающие эту тему
Быстрый переход  
Вы не можете создавать новые темы в этом форуме.
Вы не можете отвечать в этом форуме.
Вы не можете удалять Ваши сообщения в этом форуме.
Вы не можете редактировать Ваши сообщения в этом форуме.
Вы не можете создавать опросы в этом форуме.
Вы не можете голосовать в этом форуме.