CentOS Node.js TLS配置指南

简介
CentOS是一个流行的Linux发行版,而Node.js是一个广泛使用的JavaScript运行时环境,在开发Web应用时,TLS(传输层安全性协议)是确保数据传输安全的关键技术,本文将详细介绍如何在CentOS上配置Node.js的TLS功能。
安装Node.js
下载Node.js源码
从Node.js官网下载适合CentOS的源码包。
wget https://nodejs.org/dist/v14.17.0/node-v14.17.0.tar.gz
解压源码包
tar -zxvf node-v14.17.0.tar.gz
编译安装

cd node-v14.17.0 ./configure make make install
生成TLS证书
使用Let's Encrypt生成证书
sudo apt-get install certbot python3-certbot-apache
运行证书生成命令
sudo certbot --apache
输入域名并确认
等待证书生成完成
配置Node.js使用TLS
创建一个自签名证书

openssl req -x509 -newkey rsa:4096 -keyout server.key -out server.crt -days 365 -nodes -subj "/C=CN/ST=Beijing/L=Beijing/O=Example/CN=example.com"
- 修改Node.js配置文件(如:
package.json)
{
"name": "example",
"version": "1.0.0",
"private": true,
"scripts": {
"start": "node index.js"
},
"dependencies": {
"express": "^4.17.1"
}
} - 在
index.js中配置TLS
const https = require('https');
const fs = require('fs');
const options = {
key: fs.readFileSync('server.key'),
cert: fs.readFileSync('server.crt')
};
const server = https.createServer(options, (req, res) => {
res.writeHead(200);
res.end('Hello, TLS!');
});
server.listen(443, () => {
console.log('Server is running on port 443');
}); FAQs
Q1:如何查看TLS证书是否安装成功?
A1:使用以下命令查看证书:
openssl x509 -in server.crt -text -noout
Q2:如何重启Node.js服务以应用TLS配置?
A2:使用以下命令重启Node.js服务:
pm2 restart example
注意:在实际部署中,建议使用专业的证书颁发机构(CA)颁发的证书,以提高安全性。

