首页 > 解决方案 > 如何在 XAMPP(Windows)中使用公共 IP 地址配置自签名 ssl?

问题描述

我正在尝试为我的一台服务器配置自签名 ssl 证书。我有 3 台服务器。我为所有三台服务器使用 1 个公共 IP。为此,我正在使用端口转发。我知道通过使用 openssl 我可以为 localhost(私有网络)配置一个自签名的 ssl。关于我的问题,我有以下问题。我在 Windows 服务器中使用 xampp。

  1. 是否可以为带有端口的公共 IP 地址配置自签名 ssl 证书?如果是,那我该怎么做?

我看过一些配置自签名证书的教程,但它们都是用于私有 ip。

标签: sslopensslself-signed

解决方案


Meta:这确实是一个操作问题,不是编程或开发,而且是 SO 的题外话

HTTPS 服务器(如 Apache)必须使用包含用于访问它的名称的证书,即客户端使用的 URL,不包括任何端口规范。这可以是域名或 IP 地址(任何类型:v4 或 v6,公共或私有,只要使用来自客户端的地址到达正确的服务器)。这意味着如果您愿意,同一地址上不同端口的多个服务器可以使用相同的证书,但如果您愿意,它们也可以不同。

公共CA 只会颁发包含您可以证明自己拥有的域名或地址的证书,这仅适用于公共 DNS 中的完全限定域名或“永久”公共地址,但对于您自己创建的证书,限制不会不适用。

自世纪之交以来,您应该使用主题备用名称 (SAN) 扩展,而不仅仅是主题中的 CommonName 属性,因为您可能会在许多复制过时或不正确信息的网站和博客中找到。如果需要,SAN 可以指定多个名称,但请注意其中的每一项都明确指定 DNS 或 IP 地址;确保使用正确的。多年来,所有流行的软件都支持 SAN,但到目前为止,只有 Chrome(ium)需要它。OpenSSL可以创建带有 SAN 之类的扩展名的证书,但不能使用其最简单的方法,这种方法在过时或错误的网站中非常流行,即req -new紧随其后的是 basic x509 -req。看:

https://security.stackexchange.com/questions/150078/missing-x509-extensions-with-an-openssl-generated-certificate
https://unix.stackexchange.com/questions/371997/creating-a-local-ssl -证书
https://unix.stackexchange.com/questions/393601/local-ssl-certificates-in-chrome-ium-63

PS:Windows 是无关紧要的,除了你可能需要安装 OpenSSL 而在许多 Unices 上默认情况下它已经存在


推荐阅读