Двусторонняя SSL-аутентификация в NodeJS - PullRequest
0 голосов
/ 06 января 2019

Я пытаюсь интегрировать со сторонним API, используя двухстороннюю аутентификацию SSL. Предоставленная ими документация относится к JAVA , и я использую NodeJS . Я новичок в этом и действительно цепляюсь за соломинку здесь. В документе упоминается о создании самозаверяющего сертификата и использовании закрытого ключа этого сертификата с открытым сертификатом из них для создания файла PKCS 12 и использования его для вызова API.

Ниже приведена выдержка из документации к

Создание самозаверяющего сертификата

keytool -genkey -keyalg RSA -alias <aliasName>-keystore selfsigned.jks -validity <days> -keysize 2048

Импорт JKS в хранилище ключей

  1. KeyDB могут быть любого формата PFX, JKS или P12. Перечисляя сертификаты из> Keystores, перейдите в каталог bin библиотеки Java, в списке сертификатов должна быть запись Private-> Cert. Keytool -list -v -keystore <Keystore Name>

  2. Если 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
  3. Для проверки: 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.

...