是否可以获得 ip:port 而不是域名的 ssl 证书? [复制]

Posted

技术标签:

【中文标题】是否可以获得 ip:port 而不是域名的 ssl 证书? [复制]【英文标题】:Is it possible to get ssl certificate for ip:port instead of a domain name? [duplicate] 【发布时间】:2019-03-14 20:09:05 【问题描述】:

我知道我们可以保护“https://www.abcdef.com”之类的域,并让 URL 显示为绿色,表明它是安全的。

但是是否可以获得有效的 ssl 证书,例如“https://10.111.121.240:3000”。如果是怎么办?

目前,我使用的是https://10.111.121.240:3000,但 url 中的 https 被删除并显示为不安全。所以我无法在 ios/android 模拟器/模拟器中获取数据。

【问题讨论】:

对于私有 IP 地址,您将只能使用自签名证书或本地私有 CA,没有公共 CA 会对此进行签名。此外,您会遇到比其他任何问题更多的问题(HTTPS 不应该像那样工作,即使它在技术上可以工作,使用 SNI,您现在拥有带有名称的大量虚拟主机),只需将 IP 放入 /etc/hosts 中,使用任何名称并获取取而代之的是该名称的证书。 【参考方案1】:

虽然这是一个非常古老的熟悉问题,但这是我的两分钱。

由于您在 IP 中提到了端口,因此无法为这种组合颁发证书。比如IP:port。 但是如果你单独要求10.111.121.240,我的意思是ipv4公共地址(不包括端口),那是绝对可以的。

现在,有一些像 ZEROSSL 这样的服务提供有效期为 3 个月的免费 SSL 证书。对于 SSL 发行,您需要提供您的域名或仅提供公共 IP。当然,并非所有 CA 都允许这样做。示例:Let's encrypt 将只允许 FQDN 提供 SSL 证书。

要验证 CA 的证书安装,有两种验证方法。 1.提供CNAME等 2.通过Http文件上传验证。

就是这样。如果您有兴趣,现在这里有一些额外的信息。

我试图在我自己的服务器上托管一个网站。为此,我首先需要一个公共 ipv4。从我的 ISP 获取公共 ipv4 是不可能的,因为我订阅的是蜂窝服务。因此默认情况下不允许端口转发。因此,最好的办法是使用 ***,因为 *** 加密打破了 ISP 设置的所有限制。现在,我搜索了一个允许端口转发的免费 *** 服务。 portmap.io 就是这样的服务之一。唯一的问题是他们只为您的帐户发布一个特定端口,并要求您将该端口映射到您的本地计算机端口。最后,我成功地使用 Termux APP(python 模块)+ portmap *** 在我的手机中托管了我自己的网站。

第 2 阶段:获取此端口映射 *** URL 的 SSL 证书。该 URL 看起来与您提到的相似。 193.22.202.29:1176 什么的。正如我已经说过的,这个 URL 的 SSL 是不可能的。如果我删除端口,那么这就是端口映射公司的公共 IP。 CA 的文件上传验证不起作用。

第 3 阶段:将上述所有内容都扔掉,只选择 AWS EC2 实例免费套餐。在其中使用 apache2 服务器并使用实例的公共 IP 通过 ZEROSSL 验证我的 SSL 证书。

【讨论】:

【参考方案2】:

作为一般规则,

CA 不为 IP 地址颁发证书。自 2018 年 10 月起,为 IP 地址颁发的所有证书均已吊销。

当然,正如@Dana 所说,您可能会获得证书,但不会便宜。

【讨论】:

我不相信这个。虽然 8.8.8.8 (google) 可能是一个特例,但 1.1.1.1 (cloudflare) 在 2019-07 年有this validly logged cert 并且从未被撤销(虽然它已经因为其他原因被替换,并且即将在 2021 年到期- 02)。 CABforum 确实要求在 2016(不是 2018 年)中撤销 保留(非公开)地址的所有证书。【参考方案3】:

这是可能的,而且会奏效。

唯一的权衡是您必须始终通过 IP 地址访问系统。如果您使用它的 FQDN 访问系统,浏览器将显示资源不安全,因为证书包含 CN=,而不是 CN=

This answer 包含更多信息。

【讨论】:

浏览器不喜欢 CN 中的内容,您需要使用适当的 SAN 扩展和 IPAddress 案例。 使用 SAN 扩展是正确的方法,你是对的。【参考方案4】:

仅针对完全限定域名 (FQDN) 颁发普通 SSL 证书,但如果您想获得公共 IP 地址的 SSL 证书,则可以按照此resource。

【讨论】:

以上是关于是否可以获得 ip:port 而不是域名的 ssl 证书? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

实战:第二十四章:ip:port改成域名的方式,并将http自动转https

配置 apache 服务器以代理 SSL 连接时出现问题

Node.js 根据使用的域名重定向到一个 ip:port

SSL证书是不是支持二级或多级域名?

检查 ip:port 在远程主机上是不是打开

个人网站可以安装SSL证书吗?怎么获得SSL证书?