Dengan perkembangan berterusan teknologi dan aplikasi Internet, isu keselamatan semakin menarik perhatian. Keselamatan penghantaran telah menjadi satu keperluan untuk aplikasi rangkaian moden. Dalam konteks ini, HTTPS (Hypertext Transfer Protocol over Secure Socket Layer) telah menjadi kaedah utama penghantaran data di Internet. Ia boleh merealisasikan penghantaran data yang disulitkan melalui protokol SSL/TSL, dengan banyak meningkatkan keselamatan penghantaran data.
Apabila menggunakan HTTPS, anda perlu menggunakan sijil di bahagian pelayan Sijil boleh digunakan untuk membuktikan identiti pelayan dan memastikan keselamatan semasa penghantaran maklumat. Dalam artikel ini, kami akan memperkenalkan cara membina pelayan HTTPS dengan sijil tempatan dalam Node.js.
Cara menjana sijil tempatan:
Pertama, kami memerlukan beberapa sijil yang dipercayai untuk mewujudkan sambungan HTTPS. Sijil akar bagi setiap sistem pengendalian mungkin berbeza Bagaimana untuk menjana sijil yang ditandatangani sendiri? Hanya gunakan alat openssl.
Kami mengambil sistem Linux sebagai contoh dan melaksanakan arahan berikut:
openssl genrsa -out private.key 1024
openssl req -new -key private.key -out cert. csr
openssl x509 -req -in cert.csr -signkey private.key -out cert.crt
Selepas arahan di atas dilaksanakan mengikut turutan, tiga fail akan dijana: private.key, cert. csr, cert.crt .
Antaranya, private.key ialah kunci persendirian dan cert.crt ialah sijil. cert.csr ialah permintaan menandatangani sijil dan fail ini boleh diabaikan.
Seterusnya, kita boleh menggunakan fail ini untuk membina pelayan HTTPS.
Node.js menggunakan HTTPS untuk membina pelayan setempat:
Mula-mula, kita perlu mencipta fail pelayan Node.js, seperti app.js. Dalam fail ini, kita perlu memperkenalkan dua modul: https dan fs:
const https = require('https');
const fs = require('fs');
Seterusnya, kita perlu menentukan beberapa parameter Dalam kes ini, kita perlu menentukan fail sijil dan nombor port:
pilihan const = {
kunci: fs.readFileSync('private.key'),
sijil: fs.readFileSync('cert.crt')
};
port const = 3000;
Antaranya, kunci dan sijil ialah fail sijil yang dijana di atas.
Seterusnya, kita perlu mencipta pelayan HTTPS dan mendengar pada nombor port:
pelayan const = https.createServer(options, (req, res) => {
res .writeHead (200);
res.end('hello world
');
});
server.listen(port, () => {
konsol .log (server listening on port ${port}
);
});
Kini kita boleh menjalankan fail pelayan Node.js dengan menjalankan arahan berikut dalam baris arahan:
aplikasi $ node. js
Apabila kami memasukkan https://localhost:3000 dalam penyemak imbas, penyemak imbas akan mendapati laman web tersebut tidak selamat kerana sijil semasa kami ialah sijil yang ditandatangani sendiri dan penyemak imbas tidak menganggap ia adalah sijil yang dipercayai.
Untuk menjadikan penyemak imbas mempercayai sijil ini, kami perlu mengimport sijil ke dalam penyemak imbas atau membeli sijil rasmi.
Untuk mengimport sijil, kami boleh membuka tapak web https://localhost:3000 dalam Chrome, klik butang Lanjutan, kemudian klik pautan "Teruskan ke hos tempatan (tidak selamat)", dan kemudian klik kanan pada tapak web , pilih Lihat Sijil, dan kemudian pada halaman butiran sijil, klik Salin Kunci Awam. Seterusnya, buka chrome://settings/certificates dalam penyemak imbas, kemudian klik butang "Tindakan Lain" > Hanya ikut arahan.
Dengan cara ini, kami boleh membina pelayan HTTPS secara setempat. Dalam aplikasi praktikal, sijil rasmi harus digunakan untuk memastikan keselamatan komunikasi.
Atas ialah kandungan terperinci Nodejs membina https secara setempat. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!