Node.js的tls模块使用 OpenSSL 来提供传输层安全协(Transport Layer Security)和安全套接字层(Secure Socket Layer)。该模块使用加密过的流通讯,可以使用这个模块构建一个安全的TCP服务器或是一个安全的Socket套接字。
使用tls模块前,应该第一创建TLS/SSL公钥、私钥。
1. Class: SecurePair
SecurePair表明“密钥对”类,该类对象由tls.createSecurePair()创建并返回。对象中会包含两个流,一个用于读/写加密数据,一个用于读/写明文数据。
2. Class: tls.Server
tls.Server是net.Server的子类并与其有一样的方法。不同于原始TCP请求,tls.Server服务器会使用TLS或SSL加密连接。
该类实例由tls.createServer()创建并返回:

也可以使用.pfx文件创建:

创建服务器后,可以使用openssl s_client命令测试服务器:
openssl s_client -connect 127.0.0.1:8000
TLS/SSL服务器不同于TCP服务器,除可以接收普通连接外,还可以接收通过'secureConnection'事件添加安全连接。上例中,创建服务器时添加的函数就会自动添加到该事件:
function (tlsSocket) {}
这个回调函数中有一个参数,该参数是一个tls.TLSSocket实例。
3. Class: tls.TLSSocket
tls.TLSSocket是对net.Socket的包装,使用TLS加密传输取代了透明传输。它的实例实现了双向流接口,它有流中所有事件及方法。
可以使用构造函数,从一个已存在的TCP套接字中创建一个TLSSocket对象:
new tls.TLSSocket(socket[, options])
也可以使用tls.connect()方法,连接到一个远程TCP服务器,并创建一个TLSSocket对象:

或使用.pfx文件创建连接:

来自:http://itbilu.com
交流群:564850876




