温馨提示×

Linux Node.js 如何配置 SSL 证书

小樊
45
2026-01-01 02:30:45
栏目: 云计算

在 Linux 上为 Node.js 应用程序配置 SSL 证书,可以确保数据传输的安全性。以下是一个详细的步骤指南,帮助你完成这一过程:

1. 获取 SSL 证书

首先,你需要一个 SSL 证书。你可以从以下几种方式获取:

  • Let’s Encrypt:提供免费的 SSL 证书。
  • 购买证书:从证书颁发机构(CA)购买。
  • 自签名证书:适用于测试环境。

使用 Let’s Encrypt 获取证书

你可以使用 Certbot 工具来获取和续订 Let’s Encrypt 证书。

sudo apt update
sudo apt install certbot python3-certbot-nginx

然后运行 Certbot 来获取证书:

sudo certbot --nginx -d yourdomain.com -d www.yourdomain.com

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

2. 配置 Node.js 应用程序

假设你已经有一个 Node.js 应用程序,下面是如何配置 SSL 证书的步骤。

使用 HTTPS 模块

Node.js 内置了 https 模块,可以直接使用它来创建 HTTPS 服务器。

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

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

https.createServer(options, (req, res) => {
  res.writeHead(200);
  res.end('hello world\n');
}).listen(443);

使用 Express 框架

如果你使用的是 Express 框架,可以这样配置:

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

const app = express();

app.get('/', (req, res) => {
  res.send('hello world!');
});

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

https.createServer(options, app).listen(443);

3. 自动续订证书

Let’s Encrypt 证书的有效期是 90 天,因此你需要设置自动续订。

Certbot 提供了一个自动续订的脚本,你可以将其添加到 cron 任务中。

sudo crontab -e

添加以下行:

0 0,12 * * * certbot renew --post-hook "systemctl reload nginx"

这会每天检查证书是否需要续订,并在续订后重新加载 Nginx 服务。

4. 测试配置

确保你的 Node.js 应用程序可以通过 HTTPS 访问。你可以使用浏览器访问 https://yourdomain.com 来测试。

总结

通过以上步骤,你可以在 Linux 上为 Node.js 应用程序配置 SSL 证书。使用 Let’s Encrypt 是一个经济实惠且方便的选择,而 Certbot 则简化了证书的获取和续订过程。

0