linux

Linux 下 Node.js 如何配置 SSL

小樊
38
2025-06-09 03:12:53
栏目: 云计算

在 Linux 下为 Node.js 应用配置 SSL 可以通过以下步骤完成。这里我们将使用 Node.js 内置的 https 模块来创建一个简单的 HTTPS 服务器,并配置 SSL 证书和私钥。

步骤 1:生成 SSL 证书和私钥

你可以使用 OpenSSL 工具来生成自签名的 SSL 证书和私钥。如果你打算用于生产环境,建议从受信任的证书颁发机构(CA)购买证书。

生成自签名证书和私钥

openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365

执行上述命令后,系统会提示你输入一些信息,如国家、组织名称等。这些信息将包含在证书中。

步骤 2:创建 Node.js HTTPS 服务器

创建一个新的 JavaScript 文件,例如 server.js,并添加以下代码:

const https = require('https');
const fs = require('fs');

// 读取证书和私钥文件
const options = {
  key: fs.readFileSync('key.pem'),
  cert: fs.readFileSync('cert.pem')
};

// 创建 HTTPS 服务器
https.createServer(options, (req, res) => {
  res.writeHead(200);
  res.end('hello world\n');
}).listen(443, () => {
  console.log('Server running at https://localhost/');
});

步骤 3:运行服务器

在终端中运行以下命令启动服务器:

node server.js

步骤 4:访问服务器

打开浏览器并访问 https://localhost/。由于我们使用的是自签名证书,浏览器会显示一个安全警告。你可以选择继续访问以查看服务器响应。

注意事项

  1. 生产环境:在生产环境中,建议使用受信任的证书颁发机构(CA)签发的证书,而不是自签名证书。
  2. 端口:HTTPS 默认使用端口 443,确保该端口在你的服务器上是开放的。
  3. 防火墙:确保你的防火墙允许通过 HTTPS 端口的流量。

使用 Let’s Encrypt 获取免费证书

如果你需要一个受信任的证书,可以使用 Let’s Encrypt 提供的免费证书。以下是使用 Certbot 获取证书的步骤:

  1. 安装 Certbot
sudo apt update
sudo apt install certbot
  1. 获取证书
sudo certbot --http-01-port=80 -d yourdomain.com

按照提示完成证书的获取和配置。

  1. 配置 Node.js 服务器

将生成的证书和私钥路径配置到你的 Node.js 服务器代码中:

const options = {
  key: fs.readFileSync('/etc/letsencrypt/live/yourdomain.com/privkey.pem'),
  cert: fs.readFileSync('/etc/letsencrypt/live/yourdomain.com/fullchain.pem')
};
  1. 自动续期

Certbot 会自动设置一个 cron 任务来定期续期证书。

通过以上步骤,你可以在 Linux 下为 Node.js 应用配置 SSL。

0
看了该问题的人还看了