我正在创建一个 Web 应用程序,希望它只能通过其 IP 和端口进行访问。它将被外部访问。
e.g. xxx.xxx.xxx.xxx:8888
我想在网站上启用 SSL,没有域名可以吗?
答案1
从技术上讲,将公用名称设为 IP 而不是 DNS 名称是允许的,但我认为我从未见过这种做法。如果您自己制作证书,它应该可以正常工作。如果您从第三方购买证书,那么您可能会遇到困难。
为什么不直接使用 DNS 名称作为服务器名称?我不会在仅有 IP 的网站上输入任何信息,无论是否使用 SSL。
答案2
是的,只要您的用户接受该证书,名称甚至不必匹配。
答案3
你可能感兴趣StackOverflow 上的这个答案。
从RFC 2818(第 3.1 节)(HTTPS/TLS 上的 HTTP):
如果存在 dNSName 类型的 subjectAltName 扩展,则必须将其用作身份。否则,必须使用证书主题字段中的(最具体的)通用名称字段。虽然使用通用名称是现行做法,但已弃用,并鼓励证书颁发机构改用 dNSName。
[...]
在某些情况下,URI 被指定为 IP 地址而不是主机名。在这种情况下,iPAddress subjectAltName 必须存在于证书中,并且必须与 URI 中的 IP 完全匹配。
这意味着,要使 IP 地址起作用,它必须位于 IP 地址类型的主题备用名称条目中。与主机名不同,主机名首选 SAN,但可以依靠主题 DN 中的 CN,而使用 IP 地址时,SAN 条目不是可选的。(话虽如此,有些浏览器在实施该规则时可能会有点灵活。)