php - PHP 中的 SSL 帖子

标签 php post ssl https openssl

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

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

然后站点 B 应使用安全 key 进行响应。

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

提前致谢。

稍后编辑

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

稍后编辑 2

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

最佳答案

如果您想保护请求免受 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 脚本需要对其及其私钥具有读取访问权限(通常最好防止这种情况发生,以防脚本遭到破坏)。根据上下文,其他身份验证技术可能更明智。

关于php - PHP 中的 SSL 帖子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12836539/

相关文章:

php - laravel - 从数据库中删除 updated_at 和 created_at 列后,laravel 尝试插入它们

ssl - nginx www 重定向到非 www 抛出证书错误

python - 在 Python 中从 TLS 连接读取应用程序数据

java - 使用sun HttpsServer时如何获取ssl session

php - MYSQL PHP 单数据库应用性能

PHP Session 变量未保存

php - PHP中不区分大小写的字符串比较

php - 尝试使用 php ( HTTP POST ) 从 iOS 连接到 MySQL 数据库

php - 根据ID点击时在网页中显示不同的数据

java - 使用 httpclient 将数据发布到 servlet