温馨提示×

centos nodejs配置https的方法

小樊
81
2025-01-01 03:27:40
栏目: 编程语言

在CentOS上配置Node.js以支持HTTPS,您需要以下几个步骤:

  1. 安装Node.js和npm(如果尚未安装):
sudo yum install -y nodejs npm
  1. 生成SSL证书和私钥。您可以使用自签名证书进行测试,但在生产环境中,您应该从受信任的证书颁发机构(CA)获取证书。要生成自签名证书,请运行以下命令:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout key.pem -out cert.pem

按照提示输入相关信息。这将生成两个文件:key.pem(私钥)和cert.pem(证书)。

  1. 创建一个新的Node.js项目文件夹并进入该文件夹:
mkdir my-https-app
cd my-https-app
  1. 初始化项目并安装Express(一个流行的Node.js Web框架):
npm init -y
npm install express https fs
  1. 在项目文件夹中创建一个名为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}`);
});
  1. 确保您的防火墙允许HTTPS流量:
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
  1. 运行您的Node.js应用:
node app.js

现在,您的Node.js应用已经配置为使用HTTPS。请注意,由于我们使用的是自签名证书,浏览器可能会警告您证书不受信任。在测试环境中,您可以选择继续访问该网站。但在生产环境中,请务必使用受信任的CA颁发的证书。

0