2016-08-08 117 views
1

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

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

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

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

谢谢

回答

0

如果我改用SERVER_IP的的localhost.localdomain,要求正确生成。

您必须使用颁发证书的主机名访问主机。除了使用-insecure之外,实际上并没有太多解决方法,因为您已经指定了您不想执行的操作。

我知道ssl证书只能证明一个主机名。

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

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

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

+0

谢谢vscjones。我可以按照你的建议编辑/ etc/hostname文件来解决这个问题。删除localhost.localdomain并将其替换为实际服务器的IP。 –