Node.js TLS/SSL示例

本文概述

  • 什么是TLS / SSL
  • 什么是公钥密码学
  • Node.js TLS客户端示例
什么是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)文件。
【Node.js TLS/SSL示例】可以这样创建证书:
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示例

文章图片

    推荐阅读