我的客户有一台由 Digital Ocean 托管的 Ubuntu 服务器。该服务器没有域名,我们通过公共 IP 地址访问它。他们想开始使用 https,并向我提供了来自 GoDaddy.com 的 SSL 证书。我需要向 GoDaddy 提供 CSR 来设置 SSL 证书。
我尝试在服务器上创建 CSR 和私钥:
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365
问题是我没有东西可以输入到Common Name (eg, fully qualified host name) []:
提示中。直接输入 IP 地址可以吗?
在研究这个问题时,我遇到了可以指定 IP 地址的主题备用名称 (SAN),但我不确定如何将其添加到 CSR。
我是否需要告诉我的客户他们应该获取一个域名?
答案1
你可以,但你不应该这样做,因为你在这里显然讨论的是 DV 证书。
证书标识“某物”。该“某物”可以是组织、个人、网站、电子邮件地址、IP 地址、一段代码等。
如果您要创建用于 HTTPS 世界的证书,则需要在证书的 SAN 部分中包含 DNS 名称。您不应在主机名部分使用带有 IP 地址的 HTTPS URL,因为即使从技术上讲可以行得通,并且您可以拥有带有 IP 地址而不是名称的证书,但它们必须以不同的方式生成,并且您在寻找 CA 来签名它们时会遇到更多麻烦。
您应该注册一个域名,任何人,然后使用它作为后缀来命名您的所有主机,然后按照应该的方式解决问题:所有主机现在都有一个名称,因此您可以为该名称创建一个适当的证书。