如何在 Node/Express 中使用 CAC 对用户进行身份验证
Posted
技术标签:
【中文标题】如何在 Node/Express 中使用 CAC 对用户进行身份验证【英文标题】:How to authenticate user with CAC in Node/Express 【发布时间】:2020-01-20 20:22:51 【问题描述】:我需要允许用户使用他们的 DoD 颁发的通用访问卡登录我的 react 网站。我正在使用 express api 作为身份验证服务器。我已将服务器配置为需要客户端证书:
const options =
key: fs.readFileSync(config.ssl.keyPath),
cert: fs.readFileSync(config.ssl.certPath),
ca: [fs.readFileSync(config.ssl.caPath)],
requestCert: true,
rejectUnauthorized: false,
;
https.createServer(options, expressApp).listen(port);
如何让我的 react 应用从 CAC 请求/加载/读取证书?
【问题讨论】:
貌似可以在这篇文章中找到答案medium.com/@sevcsik/… 确保您的 ssl.caPath 中有相关的国防部 CA,否则浏览器可能不会提示用户选择证书/输入他们的密码 @imjosh 我在目录中有相关的 CA pem 文件。例如,我可以调用返回 OK 的openssl verify -CAfile allCrts.pem myclient.pem
。它是否正确?我现在只需要获取服务器证书和密钥吗?
【参考方案1】:
您需要创建一个 .PFX 证书并将其导入浏览器的证书存储区。生成的证书应由用于启动 Express 服务器的 CA 签名。导入浏览器的证书也应该启用“客户端身份验证”。
【讨论】:
以上是关于如何在 Node/Express 中使用 CAC 对用户进行身份验证的主要内容,如果未能解决你的问题,请参考以下文章
Node.js / Express / Mongoose - 如何发送 JSON 以及对象视图?
如何解析 node.js、express.js、mysql2 中“rows”对象的数据
如何在 Node/Express 应用程序中处理 api 版本