未处理的关键扩展

时间:2016-12-21 14:22:36

标签: node.js ssl openssl tls1.2

我们正在尝试创建一个node.js应用程序,该应用程序应该通过HTTPS与服务器进行交互(> TLS v1.2)。我们给出了一些密钥,证书文件列表,以建立与服务器的连接。节点HTTPS需要CA,证书,密钥文件,即CA文件,客户端证书和密钥文件。提供这些时,我们收到以下错误:

Error: unhandled critical extension.

在互联网上花了一些时间之后,我们发现在TLS握手时收到的服务器证书有一些自定义扩展。稍后当我们openssl verify -CAfile ca_file.pem client_cert.pem时,我们可以重现它:

error 34 at 0 depth lookup:unhandled critical extension
OK

所以,这似乎与OpenSSL有关。我们如何让OpenSSL了解我们的自定义扩展?这些自定义扩展程序也很重要,因此我们不能通过设置-ignore_critical来忽略错误。

修改

CA证书的X509v3 extensions部分中包含以下内容,

X509v3 extensions:
  X509v3 Subject Key Identifier: 
      A1:*:*:*...
  X509v3 Authority Key Identifier: 
      keyid:1D:*:*:*

  X509v3 Basic Constraints: critical
      CA:TRUE, pathlen:0
  X509v3 Key Usage: 
      Digital Signature, Certificate Sign, CRL Sign

服务器证书的X509v3 extensions部分

中包含以下内容:
X509v3 extensions:
  X509v3 Basic Constraints: 
      CA:FALSE
  Netscape Cert Type: 
      SSL Client
  X509v3 Key Usage: 
      Digital Signature, Non Repudiation, Key Encipherment
  X509v3 Subject Key Identifier: 
      E1:*:*...
  X509v3 Authority Key Identifier: 
      keyid:F9:*:*:*...

  X509v3 Extended Key Usage: 
      TLS Web Client Authentication
          1.3.*.*.*...: critical
            02.
            TYPE:TEST..FCC_ID:12345..DP_ID:54321
          1.3.*.*.*...: critical
      ..NULL:TRUE

CA证书没有X509v3 Extended Key Usage部分。

0 个答案:

没有答案