php - 绕过 SSL 检查

标签 php security curl ssl

我正在调试某人在使用 PHP 插件访问支付网关时遇到的问题。他在单击结帐按钮后能够避免 404 错误的唯一方法是将 CURLOPT_SSL_VERIFYPEER 和 CURLOPT_SSL_VERIFYHOST 设置为 0。我知道这很糟糕,但有人知道为什么会这样吗?它似乎不信任支付网站的 SSL 证书......这可能只是他的服务器不信任某些 SSL 证书的问题吗?当检查打开时,他从 curl_exec() 函数获得的响应只是错误的。

编辑:所以我看到多个解决方案说在获取证书文件后向我的 curlopt 行添加类似的内容:

curl_setopt($ch, CURLOPT_CAINFO, getcwd() . "/CAcerts/certificate.cert");

但是,如果我要处理一群遇到此问题的独立客户怎么办?这条路并不适合所有人。我可以用什么代替适用于每个人?

如果我不能放一个通用的行,那么我会告诉这个人把他们的证书文件放在哪里?这必须由他们的网络托管服务来完成,对吧?

最佳答案

这里有一个很好的答案来解决你的问题: Security consequences of disabling CURLOPT_SSL_VERIFYHOST (libcurl/openssl)

我建议分析一下支付网站出具的证书..
php 插件使用的 url 是否与证书的通用名称字段中指定的完全相同?

如果您确定所提供的证书是正确且可信的,您可以设置 CURLOPT_CAINFO 选项来信任该证书并避免错误: curl_setopt($ch, CURLOPT_CAINFO, 'C:\path\to\curl-ca-bundle.crt');

关于php - 绕过 SSL 检查,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17234950/

相关文章:

python - 在 python 脚本中隐藏密码(仅限不安全的混淆)

java - 保护 ReSTLet 的组件

php - 获取 curl_error() : 2 is not a valid cURL handle resource while fetching all users from freshdesk api

php - 如何结合 bool 必须和排序以进行 Elasticsearch

php - 困惑... MYSQL + JOIN + PAGINATION

php - 包含内部的 Netbeans 类型提示

security - Linux 内核如何在 copy_from_user 中临时禁用 x86 SMAP?

java - 尝试使用Java Http URL连接来执行curl命令

php - 登录时使用 CURL 和 PHP 获取 facebook cookie

javascript - 即使 JSON 看起来正确,jQuery .ajax 调用也会返回 JSON 解析错误?