1

我是 ssl 和 openssl 的新手。我正在尝试使用 .cer 文件(不使用 -k 或 -insecure 标志)生成 curl 请求。生成 .pem 文件后,我尝试通过以下方式发出 POST 请求: curl --cacert certificate.pem -XPOST " https://server_ip:server_port?obj1=okay "

当我使用我的服务器 IP 地址时,我收到错误消息: curl:(51)无法与对等方安全通信:请求的域名与服务器的证书不匹配。

如果我使用 localhost.localdomain 而不是 server_ip,则会正确生成请求。

我了解 ssl 证书只能证明一个主机名。有没有办法将主机名更改为服务器的 IP 地址而不是 localhost.localdomain?

谢谢

4

1 回答 1

0

如果我使用 localhost.localdomain 而不是 server_ip,则会正确生成请求。

您必须使用已为其颁发证书的主机名访问主机。除了使用-insecure你已经指定你不想做的那样使用 curl 之外,真的没有太多的方法可以解决这个问题。

我了解 ssl 证书只能证明一个主机名。

大多数用户代理以及几乎所有浏览器都支持主题备用名称,它可以让您指定很多。浏览器通常会读取前 100 个 SAN。SAN 甚至可以支持 IP 地址。

有没有办法将主机名更改为服务器的 IP 地址而不是 localhost.localdomain

通常这是通过 DNS 完成的。不过,由于看起来您正在尝试使用环回,您可能只能编辑您的 HOSTS 文件以包含您想要指向环回地址的任何名称。

于 2016-08-08T17:34:28.307 回答