Node.JS、Socket.IO 的 SSL/TLS 双向认证笔记

本文介绍了如何在Node.JS和Socket.IO中实现SSL/TLS双向认证,包括在服务器端配置SSL选项,读取客户端证书信息,以及客户端的处理方法。示例代码展示了在不同版本的Socket.IO中获取并使用客户端证书。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Node.JS、Socket.IO 的 SSL/TLS 双向认证笔记

node.js 天然就支持 SSL/TLS(除非是你自己编译的时候把 openssl 给剔除了),但是,如果你希望用客户端数字证书登录,则须配置成双向认证的方式,并要在服务端取得客户端证书的具体信息(如将证书的subject与用户身份进行绑定),文档未细述且无范例可参考。
废话少说,看代码:
C:\nodejs\test\https\testHttps.js

var https = require('https'), fs = require('fs'), util = require('util');
var sslopts = {
  pfx: fs.readFileSync('svrCert.p12'),
  passphrase: 'You,1SB!',
  requestCert: true,
  rejectUnauthorized: true
};

var server = https.createServer(sslopts, function (req, res) {
  var usrcert = req.connection.getPeerCertificate(false);
  res.writeHead(200);
  res.end('<xmp>User Cert: ' + util.inspect(usrcert) + '</xmp>');
});

server.listen(4430, function() {
  console.log('--------server bound to 4430');
});
如果你曾经在其他服务器上配置过双向 SSL,是不是觉得这也很简单?

那么,node.js 的好伙伴 socket.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值