我正在使用节点版本8.9.1,想知道默认情况下使用哪个版本的TLS。
我尝试谷歌搜索并查看节点js文档,但找不到答案
您可以使用以下命令生成自签名证书:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
它将在当前目录中创建key.pem
和cert.pem
文件,然后您可以使用以下命令启动服务器:
const tls = require('tls');
const fs = require('fs');
const options = {
key: fs.readFileSync('key.pem'),
cert: fs.readFileSync('cert.pem')
};
const server = tls.createServer(options, (socket) => {
console.log('server connected',
socket.authorized ? 'authorized' : 'unauthorized', socket.getProtocol());
socket.write('welcome!n');
socket.setEncoding('utf8');
socket.pipe(socket);
});
server.listen(8000, () => {
console.log('server bound');
});
并使用openssl s_client
连接到它:
openssl s_client -connect 127.0.0.1:8000
在节点 v8.11.3 上的测试将输出:
server bound
server connected unauthorized TLSv1.2
裁判:
- 如何使用openssl创建自签名证书?
- tls.createServer([options][, secureConnectionListener](
- tlsSocket.getProtocol((