TLS / SSL là gì?
TLS là viết tắt của Transport Layer Security. Nó là sự kế thừa của Lớp cổng bảo mật (SSL). TLS cùng với SSL được sử dụng cho các giao thức mật mã để bảo mật thông tin liên lạc qua web.
TLS sử dụng mật mã khóa công khai để mã hóa thông điệp. Nó mã hóa thông tin liên lạc nói chung trên lớp TCP.
Các bài viết liên quan:
Mật mã khóa công khai là gì?
Trong mật mã khóa công khai, mỗi máy khách và mỗi máy chủ có hai khóa: khóa công khai và khóa cá nhân. Khóa công khai được chia sẻ với mọi người và khóa cá nhân được bảo mật. Để mã hóa một tin nhắn, máy tính yêu cầu khóa cá nhân và khóa công khai của người nhận. Mặt khác, để giải mã tin nhắn, người nhận yêu cầu
Bạn phải sử dụng request (‘tls’) để truy cập mô-đun này.
Cú pháp:
var tls = require('tls');
Mô-đun tls sử dụng OpenSSL để đạt được Bảo mật lớp truyền tải và Lớp cổng bảo mật. TLS / SSL là cơ sở hạ tầng khóa công khai / riêng tư. Mỗi máy khách và mỗi máy chủ phải có một khóa riêng.
Một khóa riêng có thể được tạo như thế này:
openssl genrsa -out ryans-key.pem 1024
Tất cả các máy chủ và một số máy khách cần phải có chứng chỉ. Chứng chỉ là khóa công khai do Tổ chức phát hành chứng chỉ ký hoặc tự ký. Để nhận chứng chỉ, bạn phải tạo tệp “Yêu cầu ký chứng chỉ” (CSR).
Một chứng chỉ có thể được tạo như thế này:
openssl req -new -key ryans-key.pem -out ryans-csr.pem
Để tạo chứng chỉ tự ký với CSR:
openssl x509 -req -in ryans-csr.pem -signkey ryans-key.pem -out ryans-cert.pem
Ví dụ về Node.js TLS client
File: 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 });