发布于 2026-01-06 8 阅读
0

用于 Node.js 的 HTTPS 本地主机

用于 Node.js 的 HTTPS 本地主机

您的本地 Node.js Web 服务器需要安全连接吗?没问题!本教程将向您展示如何使用几个命令行界面 (CLI) 命令在本地计算机上创建自颁发证书。

注意:我不维护源代码。具体的操作系统故障排除方法请点击此处查看。

先决条件

本指南假设您能够熟练地执行终端命令、浏览和修改文件系统。

要跟随本教程操作,您的主机上需要安装以下软件:

  • OpenSSL
  • 自制啤酒
  • 终端
  • Node.js
  • macOS

不是你的操作系统?别担心。Linux 和 Windows 可能只需要多几个步骤。我保证!你可以在这里找到这些步骤。

咱们开始吧……

创建一个 Node.js 项目

创建文件夹并切换目录。我们可以用一行代码完成此操作,如下所示:

$ mkdir sample-project && cd sample-project
Enter fullscreen mode Exit fullscreen mode

接下来,在项目根目录下创建一个文件:

$ touch server.js
Enter fullscreen mode Exit fullscreen mode

将以下示例代码复制粘贴到server.js文件中:

// server.js
const https = require('https');
const fs = require('fs');

const options = {
  key: fs.readFileSync('key.pem'),
  cert: fs.readFileSync('cert.pem')
};

const app = function (req, res) {
  res.writeHead(200);
  res.end("hello world\n");
}

https.createServer(options, app).listen(3000);
Enter fullscreen mode Exit fullscreen mode

如果现在启动服务器,将会输出错误。为什么?因为我们还没有生成const options变量中引用的两个 pem 文件。

创建自认证

要在主机上生成自颁发证书,需要使用 Homebrew 安装mkcert,如下所示:

$ brew install mkcert
Enter fullscreen mode Exit fullscreen mode

在本地生成证书

导航到您的 Node.js 项目根目录,打开您喜欢的终端应用程序,输入以下命令,然后按回车键(回车)。

务必在末尾添加localhost字符串,以便启用 HTTPS 来保护您的 localhost URL。

$ mkcert -key-file key.pem -cert-file cert.pem example.com *.example.com localhost

Enter fullscreen mode Exit fullscreen mode

此命令将生成两个pem文件。

  • key.pem
  • 证书.pem

如果您仔细观察,会发现这两个文件的名称分别对应于const options变量中的两个对象。您的项目设置现在应该与下图类似。

你的代码

验证 HTTPS 连接

为了验证一切是否正常运行,请在终端中输入以下命令启动 Node.js 服务器。

$ node server.js
Enter fullscreen mode Exit fullscreen mode

接下来,打开浏览器(最好是基于 Chromium OS 的浏览器),并在最左侧的搜索栏中确认 HTTPS 连接是否显示安全的 HTTPS 图标。请参见下方示例图片。

你好世界

验证新 HTTPS 连接的另一种方法是使用浏览器提供的 Web 控制台。只需导航到“安全”选项卡即可。

Web 控制台

我保证,这个快速设置方法能帮你节省数百甚至数千小时的搜索时间。对我来说确实如此!

请注意,这并不能替代现实世界中安全的 HTTPS 连接,您需要在任何需要安全性的地方实施安全的端点。

希望你喜欢这篇教程。下次再见!

文章来源:https://dev.to/josuebustos/https-localhost-for-node-js-1p1k