在带有 SSL 的服务器上使用 Curl

Using Curl on a server with SSL

我的问题相当直截了当,但我会提供一些背景信息来充实问题:

我的办公室有一台服务器,其中有 运行 创建地图的软件。当我办公室的人将数据输入应用程序时,这些地图会更新为新信息。

我有一个 public 网站可以向用户显示这些地图。本网站托管在 GoDaddy 共享托管计划上。为了让网站从我的内部服务器检索地图,我使用 CURL 向内部服务器发送请求。内部服务器检查调用服务器的 IP(以及其他一些凭据),然后发出密钥。

这一直很有效。我的网站一直托管在具有静态 IP 的专用服务器上。我最近将网站移至共享计划。有人告诉我,在此计划中拥有静态 IP 的唯一方法是购买 SSL 证书。现在我的网站无法在我的内部服务器上进行身份验证。

我对 SSL 了解不多。 GoDaddy 告诉我我的静态 IP 是一回事,但如果我 运行 一个 PHP 命令:( echo $_SERVER['SERVER_ADDR']; ) 在我的托管网站上,我会看到一个非常不同的 IP。

这让我想知道-

1. 当我从这个 SSL 认证服务器发送 CURL 请求时,原始 IP 地址是什么?有办法查吗?

2. 来自 SSL 站点的 CURL 请求是否需要任何特殊参数?我了解到 调用 SSL 服务器的请求必须具有特殊参数。但事实并非如此。

抱歉这个问题太长了。任何帮助将不胜感激。

This has always worked well. My website has always been hosted on a dedicated server, which had a static IP. I recently moved the site to a shared plan. I was advised that the only way to have a static IP on this plans is to purchase an SSL certificate. Now my website is unable to authenticate at my in-house server.

我想你误会了。您的 IP 地址仍然是静态的,但是同一个 IP 上会有多个 Web 服务器,也就是说您有一个静态但不是专用的 IP 地址。当提供商决定在服务器之间移动站点以平衡负载时,它也可能会不时发生变化。

您通过 SSL 获得专用 IP 地址的原因仅在于 IP 地址是一种稀缺资源,因此您需要一个充分的理由来获得一个专用于您自己的 IP 地址。 SSL 证书是一个真正的原因,因为传统上每个 IP 地址只能有一个证书。这对于支持 SSL SNI 扩展的现代浏览器来说不再是必需的,但一些应用程序仍然需要它。

  1. When I send a CURL request form this SSL certified server, what is the originating IP Address? Is there a way to check?

通常这样的服务器有多个 IP 地址,当服务器为 运行(如果网站为 added/removed)时,可能会添加和删除 IP。所以你不能确定你有一个特定的 IP 作为来自 curl 连接的源 IP。您最多可以检查特定网络。

  1. Does a CURL request which originates on an SSL site need any special parameters? I have learned that a request which calls an SSL server must have special parameters. But this is not the case.

启用SSL的网络服务器是服务器上的一个软件。 curl 是另一个软件。 Web 服务器的配置不会影响您在不相关站点上使用 curl 的方式。