server.https

  • 类型:
import type { ServerOptions } from 'node:https';
import type { SecureServerSessionOptions } from 'node:http2';

type Https = ServerOptions | SecureServerSessionOptions;
  • 默认值: undefined

配置该选项后,可以开启 Rsbuild Server 对 HTTPS 的支持,同时会禁用 HTTP 服务器。

开启前:

> Local: http://localhost:3000/ > Network: http://192.168.0.1:3000/

开启后:

> Local: https://localhost:3000/ > Network: https://192.168.0.1:3000/
TIP

Rsbuild 默认会启用 HTTP/2 server。但当你使用 server.proxy 时,server 会降级到 HTTP/1,这是因为底层使用的 http-proxy 不支持 HTTP/2。

设置证书

你可以在 server.https 选项中手动传入 HTTPS 服务器所需要的证书和对应的私钥,这个参数将直接传递给 Node.js 中 https 模块的 createServer 方法。

具体可以参考 https.createServer

import fs from 'node:fs';

export default {
  server: {
    https: {
      key: fs.readFileSync('certificates/private.pem'),
      cert: fs.readFileSync('certificates/public.pem'),
    },
  },
};
TIP

本地开发所使用的证书通常使用 mkcert 生成,请阅读 "如何使用 HTTPS 进行本地开发" 来了解如何使用。

自签名证书

对基本的配置需求,你可以添加 @rsbuild/plugin-basic-ssl 插件,它会自动创建一个自签名的证书,并默认设置 server.https 选项。

import { pluginBasicSsl } from '@rsbuild/plugin-basic-ssl';

export default {
  plugins: [pluginBasicSsl()],
};