我是设置 SSL 证书和 CSR 的新手,我想在 SSL 中使用公共 IP 而不是域名。我使用以下命令和信息创建了一个 CSR 文件
openssl req -new -newkey rsa:2048 -nodes -keyout mydomain.key -out mydomain.csr
Generating a 2048 bit RSA private key
.....................+++
...........................................+++
writing new private key to 'mydomain.key'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:IN
State or Province Name (full name) [Some-State]:Delhi
Locality Name (eg, city) []:Delhi
Organization Name (eg, company) [Internet Widgits Pty Ltd]:MyComp ITES pvt ltd
Organizational Unit Name (eg, section) []:chatapp
Common Name (e.g. server FQDN or YOUR name) []:123.123.123.12(Elastic IP)
Email Address []:[email protected]
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
此命令生成两个文件
1.mydomain.key
2.mydomain.csr
我从 mydomain.csr 复制所有文本并粘贴到 godaddy 证书签名请求 (CSR) 中,但它给出了错误
Public IP addresses are not allowed.
有人能帮助我解决我的问题吗以及如何修复此错误。
答案1
通常,您无法获得以 IP 地址作为主题名称颁发的 SSL 证书。
首先,除非 IP 块被委托给您(例如,从 RIR 委托),否则您没有获得此类证书的基础。这意味着,除非您被列入该 IP 块的 whois 信息中,否则您将无法获得证书。
其次,即使在这种情况下,也不是所有的证书颁发机构都会这样做。
从这个意义上来说,您的弹性 IP 有点像子域。它可供您使用,并在您的提供商上下文中与您关联,但就 ICANN 及其后代而言,它不属于您。
答案2
其他答案似乎都正确,但可能没有切中要点。在我看来,真正的答案是不要这样做。
我无法想象需要您保护任意 IP 地址的用例;由于其他答案中提到的所有好理由,这似乎是一个坏主意。您失去了将名称与 IP 地址分离的灵活性,而 DNS 最初就是为此而设计的。
您应该只为您拥有的任意子域注册一个证书并完全绕过这个问题,而不是逆势而行并试图解决这个问题。
答案3
通用名称必须是您要为其申请证书的域的 FQDN。
例如www.example.com
它不能是 IP 地址。