NodeJS中的双向SSL身份验证

时间:2019-01-06 00:30:16

标签: node.js openssl ssl-certificate client-certificates pkcs#12

我正在尝试使用两种SSL身份验证与第三方API集成。他们提供的文档用于 JAVA ,而我正在使用 NodeJS 。我对此并不陌生,在这里真的很了解。在文档中,提到要生成一个自签名证书,并使用该证书的私钥和来自它们的公共证书来创建PKCS 12文件并使用它来调用API。

下面是文档摘录

创建自签名证书

  

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

将JKS导入密钥存储区

  
      
  1. KeyDB可以是任何格式的PFX,JKS或P12。从>密钥库中列出证书,转到Java库的bin目录,它在证书列表中应具有Private-> Cert条目。   Keytool -list -v -keystore <Keystore Name>

  2.   
  3. 如果不存在KeyDB,请使用通过openSSL提供的私钥和公共证书来创建Keydb。

         
        
    • 通过密钥创建P12
        openssl pkcs12 -export -in mycert.crt -inkey <mykey.key> -out mycert.p12 -name tomcat -CAfile <myCA.crt> -caname root –chain
    •   
    • 从P12创建JKS
        keytool -v -importkeystore -srckeystore <key.p12> -srcstoretype PKCS12 -destkeystore <key.jks> -deststoretype JKS
    •   
  4.   
  5. 要验证:KeyDB可以是任何格式的PFX,JKS或P12。列出密钥库中的证书,转到Java库的bin目录,它在证书列表中应该有一个Private-Cert条目。
      Keytool -list -v -keystore <Keystore Name>
  6.   

我在创建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签名的。

0 个答案:

没有答案