如何使用 openssl 在私有网络上的服务器上启用 SSL?

How to enable SSL on a server that is on a private network using openssl?

上下文

我正在尝试在客户端的本地环境中安装前端和后端 api(使用 ssl)。 我能够使用 openssl 生成自签名 ssl 证书,但是当前端应用程序向 api 发出请求时,我得到 ERR_CERT_AUTHORITY_INVALID.

非自签名ssl证书是否需要使用真实域?

我尝试使用 openssl 生成非自签名 ssl 证书,但我没有要使用的域,因为 api 不是 public。我可以使用虚拟的吗?或者我使用什么有关系吗?

我看到的所有示例都不使用子域,我可以使用一个吗?

我计划使用私有 ip 访问 api,但也不知道是否应该向我的客户请求私有 dns 条目来完成此操作。

我在创建非自签名 ssl 证书时使用了公司的域,但无法创建。我读到服务器必须打开端口 80/443,以便 openssl 可以确认您拥有该服务器。 如果我打开这些端口生成 ssl 证书然后关闭它们,ssl 证书是否有效?

Do you need to use a real domain for a non self-signed ssl certificate?

是的,您需要真实域名。

All of the examples I've seen don't use a subdomain, can I use one?

是的,您可以为子域生成证书。

Will the ssl certificate work if I open those ports to generate the ssl certificate and then close them after?

有多种方法可以证明域名是您的。对于其中一些端口,您不需要打开这些端口。

如果要使用自签名域,只需导入用于签名的证书颁发机构即可避免ERR_CERT_AUTHORITY_INVALID错误。