powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите разобраться с сертификатами
2 сообщений из 2, страница 1 из 1
Помогите разобраться с сертификатами
    #38013613
Lihman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуй %USERNAME%!

Есть задача: Передать POST-ом серверу данные в XML формате.
Но данные должны быть подписаны.
Алгоритм подписи sha1RSA, открытый ключ размером 1024 Bits.

Выслали мне для примера один сертификат в формате pfx.

Погуглив в эту сторону нашел, что его надо сконвертить в DER

Код: java
1.
2.
openssl pkcs12 -in ./file.pfx -out file.crt -nokeys -clcerts
openssl x509 -inform pem -in ./file.crt -outform der -out ./file_der.crt



Теперь пытаюсь его подгрузить:

Код: java
1.
2.
3.
4.
5.
byte[] key = FileUtils.readFileToByteArray(new File("file_der.crt"));

KeyFactory keyFactory = KeyFactory.getInstance("RSA");
PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(key);
RSAPrivateKey priv_key = (RSAPrivateKey) keyFactory.generatePrivate(keySpec);



В последней строке ругается на:
Код: java
1.
java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: IOException : DER input, Integer tag error



Чувствую, что где-то что-то не так делаю, помогите, плз!
Может ссылку, где что почитать?

Заранее спасибо!
...
Рейтинг: 0 / 0
Помогите разобраться с сертификатами
    #38017399
Lihman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попытки разобраться продолжаются.

Создаю сертификат
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
openssl req -new -x509 -days 3600 -newkey rsa:1024 -keyout partner.pem -out partner.crt -subj "/C=UA/ST=Kyiv region/L=Kiev/O=Partner/OU=IT/CN=www.partner.com.ua" 
Generating a 1024 bit RSA private key
...................++++++
......++++++
writing new private key to 'partner.pem'
Enter PEM pass phrase: ******
Verifying - Enter PEM pass phrase: ******
-----


Ввел пароль

Получаю partner.pem - закрытый ключ и partner.crt - сертификат с открытым ключом.

Код: java
1.
openssl pkcs12 -export -out partner.pfx -inkey partner.pem -in partner.crt


Команда создаст pfx файл с закрытым ключом исходя из данных pem и crt файлов.

Для подписи использовать необходимо pfx

Пытаюсь подписать текст:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
            byte[] key = FileUtils.readFileToByteArray(new File("5\\partner.pfx"));

            KeyFactory keyFactory = KeyFactory.getInstance("RSA");
            PKCS8EncodedKeySpec keySpec = new PKCS8EncodedKeySpec(key);
            RSAPrivateKey privKey = (RSAPrivateKey) keyFactory.generatePrivate(keySpec);

            signature = Signature.getInstance("SHA1withRSA");
            signature.initSign(privKey);



Выдает:
Код: java
1.
java.security.spec.InvalidKeySpecException: java.security.InvalidKeyException: IOException : version mismatch: (supported:     00, parsed:     03



Что не так делаю?
Или как понизить версию?

Заранее спасибо за любые идеи/советы!
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Помогите разобраться с сертификатами
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]