我正在尝试为我的其中一台服务器配置自签名 ssl 证书。我有 3 个服务器。我为所有三台服务器使用 1 个公共(public) ip。为此,我正在使用端口转发。我知道通过使用 openssl 我可以为本地主机(专用网络)配置一个自签名的 ssl。我有以下关于我的问题的问题。我在 Windows 服务器中使用 xampp。
- 是否可以为带有端口的公共(public) ip 地址配置自签名 ssl 证书?如果是 那我该怎么做呢?
我看过一些配置自签名证书的教程,但它们都是针对私有(private) ip 的。
最佳答案
Meta:这真的是一个操作问题,不是编程或开发,而且是 SO 的题外话
HTTPS 服务器(如 Apache)必须使用包含名称的证书用于访问它,即在客户端使用的 URL 中,不包括任何端口规范。这可以是域名或 IP 地址(任何类型:v4 或 v6,公共(public)或私有(private),只要使用来自客户端的地址到达正确的服务器)。这意味着如果您愿意,位于同一地址不同端口的多个服务器可以使用相同的证书,但如果您愿意,它们也可以不同。
公共(public) CA 只会颁发包含您可以证明自己拥有的域名或地址的证书,这仅适用于公共(public) DNS 中的完全合格域名或一个“永久”公共(public)地址,但对于您自己创建的证书,该限制不适用。
自世纪之交以来,您应该使用主题备用名称 (SAN) 扩展,而不仅仅是主题中的 CommonName 属性,因为您可能会在许多复制过时或不正确信息的网站和博客中找到它。如果需要,SAN 可以指定多个名称,但请注意其中的每一项都明确指定了 DNS 或 IP 地址;一定要使用正确的。多年来,所有流行的软件都支持 SAN,但到目前为止只有 Chrome(ium) 需要它。 OpenSSL 可以使用像 SAN 这样的扩展来创建证书,但不是使用最简单的方法,这种方法在过时或错误的网站中非常流行,即 req -new
后跟基本 x509 -请求
。见:
https://security.stackexchange.com/questions/150078/missing-x509-extensions-with-an-openssl-generated-certificate
https://unix.stackexchange.com/questions/371997/creating-a-local-ssl-certificate
https://unix.stackexchange.com/questions/393601/local-ssl-certificates-in-chrome-ium-63
PS:Windows 是无关紧要的,除了你可能需要安装 OpenSSL 而在许多 Unices 上它已经默认存在
关于ssl - 如何在 XAMPP (windows) 中使用公共(public) IP 地址配置自签名 ssl?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59662722/