在CentOS上配置Node.js以支持HTTPS,您需要以下几个步骤:
sudo yum install -y nodejs npm
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout key.pem -out cert.pem
按照提示输入相关信息。这将生成两个文件:key.pem
(私钥)和cert.pem
(证书)。
mkdir my-https-app
cd my-https-app
npm init -y
npm install express https fs
app.js
的文件,并添加以下代码:const fs = require('fs');
const https = require('https');
const express = require('express');
const app = express();
const port = 3000;
// 读取证书文件
const privateKey = fs.readFileSync('key.pem', 'utf8');
const certificate = fs.readFileSync('cert.pem', 'utf8');
const ca = fs.readFileSync('key.pem', 'utf8'); // 使用相同的私钥文件作为CA
// 创建HTTPS服务选项
const credentials = { key: privateKey, cert: certificate, ca: ca };
// 设置Express应用
app.get('/', (req, res) => {
res.send('Hello, HTTPS!');
});
// 创建HTTPS服务器
const httpsServer = https.createServer(credentials, app);
// 启动服务器
httpsServer.listen(port, () => {
console.log(`HTTPS server is running on https://localhost:${port}`);
});
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
node app.js
现在,您的Node.js应用已经配置为使用HTTPS。请注意,由于我们使用的是自签名证书,浏览器可能会警告您证书不受信任。在测试环境中,您可以选择继续访问该网站。但在生产环境中,请务必使用受信任的CA颁发的证书。