Nodejs教程
Nodejs Mysql
Nodejs MongoDB
Nodejs 对比

Node.js TLS/SSL

Node.js TLS/SSL

什么是TLS/SSL

TLS代表传输层安全性。它是安全套接字层(SSL)的后继者。 TLS和SSL一起用于加密协议,以确保Web上的通信安全。
TLS使用公共密钥加密技术来加密消息。它通常在TCP层上加密通信。

什么是公共密钥密码学

在公共密钥密码学中,每个客户端和每个服务器都有两个密钥: 公共密钥和私有密钥。公钥与所有人共享,私钥是安全的。要加密邮件,计算机需要使用其私钥和收件人的公钥。另一方面,要解密邮件,收件人需要自己的

您必须使用 require('tls')来访问此模块。
语法:
var tls = require('tls');
tls模块使用OpenSSL来获得传输层安全性和安全套接字层。 TLS/SSL是公共/专用密钥基础结构。每个客户端和每个服务器必须具有一个私钥。
可以这样创建私钥:
openssl genrsa-out ryans-key.pem 1024 
所有服务器和某些客户端需要具有证书。证书是由证书颁发机构签名或自签名的公钥。要获得证书,您必须创建一个"证书签名请求"(CSR)文件。
可以这样创建证书:
openssl req-new-key ryans-key.pem-out ryans-csr.pem 
要使用CSR创建自签名证书,请执行以下操作:
openssl x509-req-in ryans-csr.pem-signkey ryans-key.pem-out ryans-cert.pem 

Node.js TLS客户端示例

文件: tls_client.js
tls = require('tls');
function connected(stream) {
    if (stream) {
       // socket connected
      stream.write("GET / HTTP/1.0\n\rHost: encrypted.google.com:443\n\r\n\r");  
    } else {
      console.log("Connection failed");
    }
}
 // needed to keep socket variable in scope
var dummy = this;
 // try to connect to the server
dummy.socket = tls.connect(443, 'encrypted.google.com', function() {
   // callback called only after successful socket connection
   dummy.connected = true;
   if (dummy.socket.authorized) {
      // authorization successful
      dummy.socket.setEncoding('utf-8');
      connected(dummy.socket);
   } else {
      // authorization failed
     console.log(dummy.socket.authorizationError);
     connected(null);
   }
});
 dummy.socket.addListener('data', function(data) {
   // received data
   console.log(data);
});
 dummy.socket.addListener('error', function(error) {
   if (!dummy.connected) {
     // socket was not connected, notify callback
     connected(null);
   }
   console.log("FAIL");
   console.log(error);
});
 dummy.socket.addListener('close', function() {
 // do something
});
输出:
Node.js tls ssl示例1
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4