0

我想在两个网站(站点 A 和 B)之间安全地进行通信。所以我想为这两个站点购买 SSL 证书。

问题是,我需要从站点 B 向站点 A 发送 POST 请求。

然后站点-B 应该使用安全密钥进行响应。

如果我在 php 中使用普通的 post 请求来发送 POST,它是否正确且安全?或者当我们使用 SSL 时是否有任何特殊的方式来发送请求和响应。

提前致谢。

稍后编辑

实际上,我将站点 B 作为我的 Web 服务站点,以后会有更多的第三方站点(如 A、C、D、E .....)连接到站点 B 以请求用于通信的安全密钥。

稍后编辑 2

如果站点 A 向站点 B 发送 POST 请求,那么如何在站点 B 中实现响应部分(这将具有 SSL)。我将不得不在响应中发送一些数据(包括安全密钥)。

4

3 回答 3

3

如果要保护请求免受 MITM 攻击,服务器需要向其客户端证明其身份。如果从浏览器到站点 A 的连接是安全的,站点 A 必须向浏览器证明其身份;如果站点 A 和站点 B 之间的连接要安全,站点 B 必须向站点 A 中运行的 PHP 脚本证明其身份。(两者都相当独立。)

在 HTTPS 连接中证明身份是证书的作用。

如果您想保护浏览器和站点 A 之间的通信,除非您的用户数量相当有限,否则您可以手动向其提供证书,请从站点 A 的知名 CA 获取证书(即用户直接使用)将是必需的。

如果只有有限数量的客户端连接到站点 B(例如只有站点 A),并且如果您控制所有这些方,则可以在站点 B 上创建自己的 CA(或使用自签名证书)并显式导入作为在站点 A 上运行的 PHP 代码中的受信任证书(如果您在 PHP 中使用 Curl 进行连接,则可以使用 进行设置CURLOPT_CAINFO)。

如果您希望难以手动向其提供证书的第三方使用站点 B,则还需要从知名 CA 获取证书。(它也可能更方便。)

您可能需要考虑的是在站点 A 连接到站点 B 时对其进行身份验证,因为这不仅仅是为了防止窃听和 MITM 攻击,而是确保站点 B 将信息提供给正确的一方。您可以在站点 B 上使用一系列身份验证/授权技术来执行此操作。这可以使用站点 A 的客户端证书,但我建议不要使用站点 A 的证书(但您为此目的制作的另一个客户端证书,可能使用您自己的 CA),因为 PHP 脚本需要对其及其私钥具有读取权限(通常最好防止这种情况发生,以防脚本遭到破坏)。根据上下文,其他身份验证技术可能更明智。

于 2012-10-11T10:48:26.943 回答
1

使用这样的 url 从 A 发布到 Bhttps://site_b.com对通信部分来说是安全的。

但是,安全性远不止于此,只有通信。

注意:您可以考虑使用 SFTP 协议,而不是购买证书,并且仅用于从 B 到 A 的通信。

于 2012-10-11T09:43:35.573 回答
1

您的站点 A 不需要 SSL 证书。

站点 B 可以单独拥有 SSL 证书以进行安全通信。对于向POST 和接收数据,使用安全通道进行通信(请注意通信意味着请求和响应!)。

任何数量的站点都可以请求相同的安全站点 B。

如果您有站点 B其他站点发布内容,那么情况就不同了:其他站点也应该有 SSL!

于 2012-10-11T10:14:48.063 回答