我知道我们可以保护诸如 "https://www.abcdef.com" 这样的域名,并使URL显示为绿色,表示它是安全的。
但是像 "https://10.111.121.240:3000" 这样的URL是否可以获取有效的SSL证书呢?如果可以,如何操作?
目前,我正在使用https://10.111.121.240:3000,但URL中的https被划去并显示为不安全。因此,我无法在iOS / Android模拟器中获取数据。
我知道我们可以保护诸如 "https://www.abcdef.com" 这样的域名,并使URL显示为绿色,表示它是安全的。
但是像 "https://10.111.121.240:3000" 这样的URL是否可以获取有效的SSL证书呢?如果可以,如何操作?
目前,我正在使用https://10.111.121.240:3000,但URL中的https被划去并显示为不安全。因此,我无法在iOS / Android模拟器中获取数据。
虽然这是一个非常老套的问题,但以下是我的两分钱。
由于您提到了IP和端口,因此无法为此组合发放证书。比如,IP:port
。
但如果您仅请求10.111.121.240,我的意思是ipv4公共地址(不包括端口),那么绝对是可能的。
现在,有一些像ZEROSSL这样的服务提供免费的SSL证书,有效期为3个月。要进行SSL发行,您需要提供域名或者只是公共IP。当然,并非所有CA都允许这样做。例如:Let's encrypt只允许提供FQDN以提供SSL证书。
为了验证CA的证书安装,有两种验证方式。 1. 提供CNAME等 2. 通过进行Http文件上传验证。
就是这样。现在,如果您感兴趣,这里有一些额外的信息。
我尝试在自己的服务器上托管网站。为此,我首先需要一个公共IPv4地址。由于我的订阅是用于蜂窝服务,所以无法从我的ISP获取公共IPv4地址。因此,默认情况下不允许端口转发。因此,克服这个问题的最佳方法是使用VPN,因为VPN加密打破了ISP设置的所有限制。现在,我正在寻找一个允许端口转发的免费VPN服务。portmap.io是这样的一项服务之一。唯一的问题是他们为您的帐户发放一个特定的端口,并要求您将该端口映射到本地机器端口。最终,我成功地使用Termux APP(Python模块)+ portmap VPN在我的移动设备上托管了自己的网站。第二阶段:为此portmap VPN URL获取SSL证书。该URL看起来类似于您提到的内容。193.22.202.29:1176什么的。正如我已经说过的,这个URL的SSL不可能实现。如果我删除端口,那么这就是portmap公司的公共IP。CA的文件上传验证将无法工作。
第三阶段:放弃上述所有步骤,直接使用AWS EC2实例免费层。在其中使用apache2服务器,并使用实例的公共IP通过ZEROSSL验证我的SSL证书。
这是可能的,而且它会工作。
唯一的妥协是您必须始终通过IP地址访问系统。如果您使用其FQDN访问系统,则浏览器将显示资源不安全,因为证书包含CN = <IP>,而不是CN = <FQDN>。
此答案 包含更多信息。
CN
中的内容,您需要使用适当的SAN扩展和IPAddress
大小写。 - Patrick Mevzek
/etc/hosts
中输入IP地址和名称,然后获取该名称的证书即可。 - Patrick Mevzek