tls/ssl模块

TLS/SSL 是一组协议,它们依赖于公钥基础设施 (PKI) 来实现客户端和服务器之间的安全通信,目的是为互联网通信提供安全及数据完整性保障。对于最常见的情况,每个服务器都必须有一个私钥。 TLS(Transport Layer Security): 安全传输层协议(TLS)用于在两个通信应用程序之间提供保密性和数据完整性, 该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。 SSL(Secure Socket Layer): 安全套接字层,TLS安全传输层协议前身 SSL包含记录层(Record Layer)和传输层,记录层协议确定传输层数据的封装格式。传输层安全协议使用X.509认证,之后利用非对称加密演算来对通信方做身份认证,之后交换对称密钥作为会谈密钥(Session key)。这个会谈密钥是用来将通信两方交换的数据做加密,保证两个应用间通信的保密性和可靠性,使客户与服务器应用之间的通信不被攻击者窃听

tls的工作过程

tls密钥的生成过程

可以通过多种方式生成私钥。以下示例说明了使用 OpenSSL 命令行界面生成 2048 位 RSA 私钥:

openssl genrsa -out ryans-key.pem 2048

:stars: 使用 TLS/SSL,所有服务器(和一些客户端)都必须有证书。证书是对应于私钥的公钥,由证书颁发机构或私钥所有者进行数字签名(此类证书称为“自签名”)。获取证书的第一步是创建证书签名请求 (CSR) 文件:

openssl req -new -sha256 -key ryans-key.pem -out ryans-csr.pem

生成 CSR 文件后,可以将其发送到证书颁发机构进行签名或用于生成自签名证书。 以下示例说明了使用 OpenSSL 命令行界面创建自签名证书

openssl x509 -req -in ryans-csr.pem -signkey ryans-key.pem -out ryans-cert.pem

:point_up: 生成证书后,可用于生成 .pfx 或 .p12 文件

openssl pkcs12 -export -in ryans-cert.pem -inkey ryans-key.pem \
      -certfile ca-cert.pem -out ryans.pfx

引言

node:tls 模块提供了构建在 OpenSSL 之上的传输层安全性 (TLS) 和安全套接字层 (SSL) 协议的实现。可以使用以下方式访问该模块:

const tls = require('node:tls');

Server

继承于net.server,接受使用TLS或者SSL的加密连接!

results matching ""

    No results matching ""