读取智能卡时出现 ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED

Posted

技术标签:

【中文标题】读取智能卡时出现 ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED【英文标题】:ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED when reading smart card 【发布时间】:2019-12-18 11:08:43 【问题描述】:

我正在使用 React(前端)和 Nodejs(后端)开发一个 Web 应用程序,我需要使用数字证书进行身份验证。

给服务器的选项是:

  key: fs.readFileSync('./certs/localhost_key.pem'),
    cert: fs.readFileSync('./certs/localhost_cert.pem'),
    requestCert: true , rejectUnauthorized: false,
    ca: [
    fs.readFileSync('./certs/ACCVCA120.crt')
  ]

选择证书后,从后端读取证书的行是let cert = req.connection.getPeerCertificate(),前端调用拥有该行的端点来读取它。

如果我使用存储在计算机上的证书,应用程序会正确读取证书,但如果它从智能卡中读取,在选择证书后会出现以下错误:net::ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED。

¿您能否提供解决此错误的方法?

谢谢。

【问题讨论】:

【参考方案1】:

我终于解决了问题,我把解决方案放在这里。

我使用标志 --tls-min-v1.0 是因为我需要它来建立与 Active Directory 的安全连接。

要执行智能卡读取,我需要更新的 TLS 版本,至少 TLS 1.2,因此读取失败。

如果我使用较新的 TLS 版本,AD 连接失败,所以最后的解决方案是添加两个标志:

--tls-min-v1.0 --tls-max-v1.2

【讨论】:

以上是关于读取智能卡时出现 ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED的主要内容,如果未能解决你的问题,请参考以下文章

Remix IDE - 部署智能合约时出现功能问题

为啥在尝试从节点脚本部署以太坊智能合约时出现“无效发件人”(-32000)?

部署智能合约时出现节点错误 - Web3.js

ArrayIndexOutOfBoundsException:读取 gif 文件时出现 4096

读取 XML 元素时出现异常

读取视频帧 iPhone 时出现内存问题