Я могу сгенерировать свой собственный закрытый ключ и сертификат следующим образом:
openssl genrsa -out privatekey.pem 2048
openssl req -new -x509 -key privatekey.pem -out g4certificate.pem -days 1095
Копирование и вставка частей сертификата/закрытого ключа в базу данных и выполнение тестового инструментария возвращают успешный обмен ключами HMAC.
Однако теперь я приобрел SSL-сертификат GlobalSign и у меня есть файл .pfx.
Как извлечь эквивалентный закрытый ключ/сертификат RSA, аналогичный тем, которые использовались, когда инструментарий вернул успешный обмен ключами?
Моя попытка:
Я попытался преобразовать файл .pfx в файл .pem с помощью следующей команды:
openssl pkcs12 -nodes -in filename.pfx -out filename.pem
Полученный файл .pem содержит 3 сертификата и закрытый ключ с заголовком «-----BEGIN PRIVATE KEY-----», а не «-----BEGIN RSA PRIVATE KEY-----».
Я попробовал скопировать+вставить закрытый ключ в новый документ и сохранить его как privatekey.key. Затем преобразовал его с помощью следующей команды:
openssl rsa -in privatekey.key -out privatekey_new.key
В результате создается файл с заголовком «-----BEGIN RSA PRIVATE KEY-----», который похож на самостоятельно сгенерированный ключ RSA.
Однако при попытке обмена ключами я получаю следующую ошибку:
DEBUG [AbstractTest] - Failed:
java.security.InvalidKeyException: Wrong key usage
at javax.crypto.Cipher.init(Cipher.java:1674)
at javax.crypto.Cipher.init(Cipher.java:1580)
решение1
Неправильное использование ключа
Это означает, что сертификат не может быть использован для той цели, которую вы пытаетесь выполнить.