Я пытаюсь интегрировать со сторонним API, используя двухстороннюю аутентификацию SSL. Предоставленная ими документация относится к JAVA , и я использую NodeJS . Я новичок в этом и действительно цепляюсь за соломинку здесь. В документе упоминается о создании самозаверяющего сертификата и использовании закрытого ключа этого сертификата с открытым сертификатом из них для создания файла PKCS 12 и использования его для вызова API.
Ниже приведена выдержка из документации к
Создание самозаверяющего сертификата
keytool -genkey -keyalg RSA -alias <aliasName>-keystore selfsigned.jks -validity <days> -keysize 2048
Импорт JKS в хранилище ключей
KeyDB могут быть любого формата PFX, JKS или P12. Перечисляя сертификаты из> Keystores, перейдите в каталог bin библиотеки Java, в списке сертификатов должна быть запись Private-> Cert.
Keytool -list -v -keystore <Keystore Name>
Если KeyDB отсутствует, создайте Keydb, используя закрытый ключ и открытый сертификат, предоставляемый через openSSL.
- Создать P12 из ключа
openssl pkcs12 -export -in mycert.crt -inkey <mykey.key> -out mycert.p12 -name tomcat -CAfile <myCA.crt> -caname root –chain
- Создание JKS из P12
keytool -v -importkeystore -srckeystore <key.p12> -srcstoretype PKCS12 -destkeystore <key.jks> -deststoretype JKS
- Для проверки: KeyDB могут быть любого формата PFX, JKS или P12. Перечисляя сертификаты из Keystores, перейдите в каталог bin библиотеки Java, в списке сертификатов должна быть запись Private-Cert.
Keytool -list -v -keystore <Keystore Name>
Я столкнулся с проблемой при создании файла PKCS 12. Я создал самозаверяющий сертификат, используя openssl (поставляется с git) через нижеуказанные команды
Создание запроса и секретного ключа
openssl req -new -newkey rsa:2048 -nodes -keyout privatekey.key -out certificatereq.cer
Создание сертификата с использованием запроса и ключа
openssl x509 -req -days 365 -in certificatereq.cer -signkey privatekey.key -out selfsigned.crt
При создании сертификата я использовал его для создания файла PKCS 12, как указано в документации выше, с помощью указанной ниже команды
openssl pkcs12 -export -in selfsigned.crt -inkey privatekey.key -out outpkcs12file.p12 -name myname -CAfile thirdpartypublic.crt -caname mycaname -chain
но получаю ошибку Ошибка самоподписанного сертификата при получении цепочки . Я попытался установить самоподписанный сертификат в моей системе и получить ту же ошибку. Если я удаляю -chain (, не уверен, что он делает, но нашел несколько команд без -chain ), то в терминале нет вывода. Сертификат третьей стороны подписан CA.