我正在使用React(前端)和Nodejs(后端)开发一个Web应用程序,我需要使用数字证书进行身份验证。
提供给服务器的选项是:
POST
选择证书后,从后端读取证书的行为 key: fs.readFileSync('./certs/localhost_key.pem'),
cert: fs.readFileSync('./certs/localhost_cert.pem'),
requestCert: true , rejectUnauthorized: false,
ca: [
fs.readFileSync('./certs/ACCVCA120.crt')
]
}
,前端调用拥有该行的端点来读取它。
如果我使用存储在计算机上的证书,则该应用会正确读取该证书,但是如果它是从智能卡读取的,则在选择证书后出现以下错误: net :: ERR_SSL_CLIENT_AUTH_SIGNATURE_FAILED < / strong>。
¿您能给我一种解决此错误的方法吗?
谢谢。
答案 0 :(得分:0)
最后我解决了这个问题,我把解决方案放在这里。
我使用标志--tls-min-v1.0
是因为我需要它来建立与Active Directory的安全连接。
要执行智能卡读取,我需要更新的TLS版本(至少是TLS 1.2),因此读取失败。
如果我使用较新的TLS版本,则AD连接失败,因此最终解决方案添加了两个标志:
--tls-min-v1.0
--tls-max-v1.2