前端和后端使用相同的 mkcert 证书可以吗?

Is it fine to use the same mkcert certificate for both your frontend and backend?

我正在开发一个 web 应用程序,它在前端使用 vite 用于我的本地测试环境,还有一个单独的 API 后端。

我使用 mkcert 生成了一个本地开发证书,并将其用于后端。

我的问题是,对于我的前端开发环境,我可以使用证书,如 vite 配置中所示:

server: {
  https: {
    key: fs.readFileSync('key.pem'),
    cert: fs.readFileSync('cert.pem'),
  },
  proxy: {
    '/v1': {
      target: 'https://127.0.0.1:8080'
    }
  }
}

我的问题是:我可以为我的后端 前端服务器使用同样生成的证书(key.pemcert.pem)吗?它 似乎 工作正常,但我不确定这意味着什么。

我使用以下命令生成了我的 mkcert 证书:

mkcert localhost 127.0.0.1 ::1 192.168.1.96

简短回答:可以


解释:

证书不会区分“前端”或“后端”。

它仅“采用”创建时给出的 FQDN,并且证书通常对单个完全限定域名 (FQDN) 使用有效,但这超出了此问题的范围。

我的意思是,如果您仅为 127.0.0.1 创建证书并尝试从 192.168.1.96 加载它,您将看到该证书无效。

在您的情况下,当您为本地网络 IP 和 public IP 创建证书时,无论您从本地主机还是 192.168.1.96 加载证书,证书都是有效的。