Skip to content

使用 HTTPS 进行本地开发

大多数情况下,http://localhost 的行为与 HTTPS 类似,可用于开发目的。不过,在某些特殊情况下(例如使用自定义主机名或跨浏览器使用安全 Cookie),您需要明确将开发网站设置为像 HTTPS 一样运行

使用 mkcert 在本地通过 HTTPS 运行您的网站 推荐

mkcert 是一个用于制作本地受信任开发证书的简单工具。它不需要任何配置。

安装 mkcert (只需安装一次)

按照说明在您的操作系统上安装 mkcert

sh
brew install mkcert
brew install nss # if you use Firefox
sh
# 在 Linux 上,首先安装 certutil:
sudo apt install libnss3-tools
    # or
sudo yum install nss-tools
    # or
sudo pacman -S nss
    # or
sudo zypper install mozilla-nss-tools

# 然后您可以使用 Linux 版 Homebrew 安装:
brew install mkcert
sh
# On Windows, use [Chocolatey](https://chocolatey.org)
choco install mkcert

# or use Scoop
scoop bucket add extras
scoop install mkcert

或从源代码构建(需要 Go 1.10+),或使用 预构建的二进制文件. 如果遇到权限问题,请尝试以管理员身份运行 mkcert

将 mkcert 添加到您的本地根 CA

在终端中,运行以下命令

sh
mkcert -install

警告

切勿导出或共享 mkcert 在您运行 mkcert -install 时自动创建的 rootCA-key.pem 文件。如果攻击者掌握了此文件,则可以对您可能访问的任何网站发起路径攻击。他们可能会拦截您机器发送到任何网站(例如银行、医疗保健提供方或社交网络)的安全请求。如果您需要知道 rootCA-key.pem 的位置以确保其安全无虞,请运行 mkcert -CAROOT

这会生成一个本地证书授权机构 (CA)。使用 mkcert 生成的本地 CA 仅在设备上本地受信任。

项目配置

config/config.ts
ts
export default defineConfig({
  // 启用
  https: {} 
})

如果安装了 mkcert 它会通过 mkcert 自动创建一个自签名的证书, 如果未安装 mkcert 会通过 selfsigned 生成自签名证书,

提示

这里需要注意的是 selfsigned 生成的自签名证书不受信任, 需要手动确认后即可访问 HTTPS 页面

你以可以 手动传入 HTTPS 服务器所需要的证书和对应的私钥

config/config.ts
ts
export default defineConfig({
  https: {
    key: fs.readFileSync('certificates/private.pem'),
    cert: fs.readFileSync('certificates/public.pem'),
  }
})

Released under the MIT License.