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