php 5.x 7.x,ssl pdo 错误:对等证书 CN=`someName' 与预期的 CN='someIP' 不匹配

2024-04-01

我们有一个在端口 3306 上带有 mysql 的服务器。我们有证书和密钥,并且我们尝试连接到该服务器。但我们看到这样的问题:

对等证书 CN='SomeName' 与预期的 CN='someIP' 不匹配

我读了很多文章,但找不到 PDO PHP 的答案。最有趣的是 SQLYog 可以连接所有设置。

我读到可以禁用 verify_peer_names (我希望我了解什么是peer_names...),但前提是我们使用 openssl_{functions} 或 mysqli,而不是 PDO。这两种选择都不适合我。我需要 PDO。

我尝试做的事情:

  • 在 php 版本之间切换。它对我有帮助,但我需要 5.6 或更高。对于 php 7.0 同样的错误。
  • 找到 openssl 和 pdo 的其他版本;我很快就明白这是一个坏主意:)
  • 在 php.ini 中找到一些设置,但没有针对我的问题的设置,仅用于创建 ssl。

我的连接代码:

$dbInfo = array
(
'dsn' => 'mysql:host=123.45.67.890;dbname=someDB;port=3306',
'user' => 'user',
'pass' => 'userpassword'
);

$con = new PDO
    (
    $dbInfo['dsn'], $dbInfo['user'], $dbInfo['pass'], 
    array(
        PDO::MYSQL_ATTR_SSL_CIPHER => 'AES256-SHA',
        PDO::MYSQL_ATTR_SSL_CA     => 'SSLCert/ca-cert.pem',
        PDO::MYSQL_ATTR_SSL_KEY    => 'SSLCert/client-key.pem',
        PDO::MYSQL_ATTR_SSL_CERT   => 'SSLCert/client-cert.pem',
    )
    );

echo 'Connection OK!';

我们通过不使用 IP 地址而是使用机器(+域名)名称作为 CN 和连接设置,使其适用于我们的内部自签名证书。

So, put 'dbServer1.company.local'作为服务器证书的 CN 并使用相同的'dbServer1.company.local'地址作为 PDO 连接的 DSN 的主机部分。如果你喜欢,你可以直接使用'dbServer1'但请确保在这两个地方都使用它。

这会让你继续:

$pdo_options = array(
    PDO::MYSQL_ATTR_SSL_KEY => 'path/to/client-key.pem',
    PDO::MYSQL_ATTR_SSL_CERT => 'path/to/client-cert.pem',
    PDO::MYSQL_ATTR_SSL_CA => 'path/to/ca.pem'
);

PDO::__construct('mysql:host=dbServer1.company.local;dbname=someDB','someUser', 'somePass', $pdo_options);

我们管理自己的 DNS,因此可以解析dbServer1.company.local不是问题,但如果您的网络服务器无法解决您的问题,或者您不/无法管理 DNS 条目,则可以对您的服务器进行如下攻击:etc/hosts file:

10.5.5.20 dbServer1.company.local

or

10.5.5.20 dbServer1
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

php 5.x 7.x,ssl pdo 错误:对等证书 CN=`someName' 与预期的 CN='someIP' 不匹配 的相关文章

  • 从 JSON 数组创建标记 php mySQL Google Maps v2 android

    我正在尝试从 mySQL 数据库在 Google Maps v2 上创建标记 但它不起作用 地图确实出现了 但没有标记 谁能告诉我出了什么问题以及我需要改变什么 我也尝试过让 getDouble 为 getDouble 0 和 getDou
  • php echo 不工作

    我的代码似乎不起作用 单选按钮出现 但旁边什么也没有 似乎 mysql fetch array 由于某种原因无法工作 因为我已经玩过代码并反复测试它以查找代码似乎遇到的位置出现问题并停止工作 有人可以告诉我出了什么问题吗 欢呼声我是新手 最
  • 从 varchar(100) 类型获取时间(HH:MM AM/PM)格式

    如何将字符串 RD OT 07 30 转换为时间 我只知道如何将 07 30 AM 转换为时间 下面的代码给了我一个空白数据 id strtoupper POST id query mysql query SELECT STR TO DAT
  • AttributeError:尝试在 python 中运行 sqlalchemy 来管理我的 SQL 数据库时,“Engine”对象没有属性“execute”

    我有以下代码行不断给我一个错误 即引擎对象没有对象执行 我认为我一切都对 但不知道接下来会发生什么 似乎其他人也遇到了这个问题 重新启动他们的笔记本电脑就可以了 我正在使用 Pycharm 并已重新启动但没有任何解决方案 任何帮助是极大的赞
  • 从 Yii2 中的联结表检索数据

    我试图从 Yii2 中的连接表获取数据无需额外查询 我有 2 个模型 用户 组 通过连接表 user group 关联 在 user group 表中 我想存储此关系的额外数据 管理标志 将数据添加到连接表的最佳方法是什么 link 方法接
  • 更新\插入数据从grafana到mysql

    可以从grafana更新数据或插入数据到mysql 我需要使用 UI 在 mysql 中插入 更新信息 现在我已经在使用grafana 所以想知道是否有任何方法可以使用grafana来更新或插入信息 没有用于获取用户输入并将该数据插入 My
  • 使用 cfchart 标签在单个饼图中显示多个查询的数据

    请考虑以下代码 现在我的代码中有以下代码 cfm页面内的 tag DataSource xx xx x xx Name of the database sgemail Name of the relevant column event vc
  • PHP实现的机票预订系统

    如何防止预订系统中的座位被重复预订 我正在用 PHP 和 MYSQL 制作一个航空旅行预订系统模型作为一个项目 我有一个小问题 仅在付款后 门票和座位详细信息才会永久存储在此处 座位号在付款前分配 假设人 1 预订了飞机上的座位 x 并支付
  • AWS EC2 应用程序负载均衡器 + 双向 SSL?

    是否可以使用 AWS Application Load Balancer 并使用双向 ssl 客户端证书 我当前的设置使用经典的 ELB 通过 tcp 转发到 Web 服务器端点来支持此操作 我现在需要使用 URL 路由流量 并希望在可能的
  • 从所有表中选择

    我的数据库中有很多表都具有相同的结构 我想从所有表中进行选择 而不必像这样列出所有表 SELECT name FROM table1 table2 table3 table4 我尝试过 但这不起作用 SELECT name FROM 有没有
  • java中如何知道一条sql语句是否执行了?

    我想知道这个删除语句是否真的删除了一些东西 下面的代码总是执行 else 是否删除了某些内容 执行此操作的正确方法是什么 public Deleter String pname String pword try PreparedStatem
  • SSL_connect 返回=1 errno=0 状态=SSLv3 读取服务器证书 B:证书验证仅在代理时失败

    这篇文章几乎重复了许多其他帖子 包括Rails 4 和 Ruby 2 Net HTTP SSL 请求 OpenSSL SSL SSLError SSL connect returned 1 errno 0 state SSLv2 v3 re
  • Mysql获取特定表的最后一个id

    我必须从特定的插入表中获取最后的插入 ID 可以说我有这个代码 INSERT INTO blahblah test1 test 2 VALUES test1 test2 INSERT INTO blahblah2 test1 test 2
  • 如何使用MySqlCommand和prepare语句进行多行插入?(#C)

    Mysql 给出了如何使用准备语句和 NET 插入行的示例 http dev mysql com doc refman 5 5 en connector net programming prepared html http dev mysq
  • 在PHP中,如何在表格中显示数组内容

    如果我在 MySQL 客户端中进行选择 我将得到如下所示的输出 mysql gt select FROM group LIMIT 2 group id group supergroup id group deletable group la
  • 如何将域添加到 aws 上的现有 SSL 证书

    我有一个与 Amazon Web Services 上的负载均衡器关联的 SSL 证书 我想在该证书上有一个额外的域 我的问题是 是否可以向 aws 上现有的 ssl 证书添加额外的域 我发现您可以在创建证书时添加其他名称 但我不知道如何使
  • 使用仅具有 CA 证书且无密钥库的 SSLContext

    我需要设置一个javax net ssl SSLContext用于 Jersey Client 应用程序 我想要做的就是接受自定义根 ca 证书的上下文 真的没有办法生成密钥库文件并导入 CA 证书吗 确实没有办法生成密钥库 文件并导入CA
  • 如何检查 $row['column_name'] 是否返回空 php mysql

    我有一个带有列的表格 id name phone describe 当我从这个表中获取值时 我正在使用 row mysql fetch array query 现在我想检查是否 row describe 返回空值 如何查看php 您可以使用
  • MySQL 跨表计数(*) 查询帮助

    SELECT name COUNT AS count FROM t1 t2 WHERE t2 id t1 id GROUP BY t2 id 我想从 t1 获取名称以及 t2 中 id 与 t1 相同的行数 到目前为止我已经得到了上面的内容
  • 如何使用 dql 从数据表中获取唯一值?

    我有一个表 其中有一列存储了各种值 我想使用 dql 从该表中检索唯一值 Doctrine Query create gt select rec school gt from Records rec gt where rec city ci

随机推荐

  • Vue.js 依赖选择

    我正处于学习 Vue js 的初级阶段 遇到了我现在无法解决的问题 所以我有 1 个选择字段 data list Option 1 size 1 prize 5 size 2 prize 10 然后我像这样填充第一个选择字段
  • WAMPServer 3.2.0:无法访问该站点

    我一直在使用 WAMPServer 来运行 PHP 并且为此使用端口 8181 今天 突然 我无法使用 WAMPServer 访问 localhost 当我尝试打开以下地址的页面时收到此消息 http localhost 8181 无法访问
  • 为什么 Rails 找不到我的资产?

    在生产模式下 rails 似乎无法从资产管道中找到任何预编译资产 我使用的是在 CentOS 上的 RVM 内运行的 Rails 3 2 0 和 ruby 1 9 3 没有其他 Web 服务器与此应用程序一起运行 该应用程序最近才更新为使用
  • 如何在react-dnd-treeview库上使用Selenium测试拖放

    我正在尝试在 React 应用程序上测试简单的拖放行为 我正在使用反应 dnd 树视图 https github com teleport react dnd treeview图书馆和他们的示例网站 http teleport github
  • PHP - 自我表单提交:$_SERVER['PHP_SELF'] OR action=""?

    我只是意识到 在一些奇怪的情况下 我正在做我认为是自我提交的事情 而没有在操作表单属性上引用 PHP SELF 我很困惑 我们可以使用 Or action 如果不是 在什么情况下我们应该考虑其中一种或另一种 提前致谢 模模 您可以使用 PH
  • d3 力图:粘性节点

    我想在 D3 中的力导向图形布局中添加一种行为 一旦放下 拖放的 svg 节点就会粘在其位置上 无论图形中发生什么情况 都不再改变位置 我已经阅读了一些有关此 API 的内容 但我无法找到一种方法来使其正常工作 我试图解决的问题是允许用户
  • 使用 dplyr 进行汇总并保持相同的变量名

    我发现 data table 和 dplyr 在尝试做同样的事情时有不同的结果 我想使用 dplyr 语法 但让它以 data table 的方式进行计算 用例是我想将小计添加到表中 为此 我需要对每个变量进行一些聚合 但然后保留相同的变量
  • 如何从 bash 执行 mongo 命令?

    我正在尝试从 bash 脚本运行此命令 mongo 192 168 10 20 27000 eval use admin db shutdownServer quit 但我收到此错误 rs initiate use admin db shu
  • 从选择的结果创建插入脚本

    使用 SQL Server Management Studio 有一种方法可以在选择结果网格中选择一行或多行 并让 SQL Server Mangement Studio 生成一个或多个插入语句 每选择一行一个 该语句会将该数据插入到表中相
  • libuv 只是 POSIX 系统上 libev 的包装吗?

    我真的很困惑 libev 和 libuv libuv 只是 POSIX 系统上 libev 的包装吗 如果不是的话区别在哪里 不再 从 libuv v0 9 开始 这是libuv github问题 https github com joye
  • 访问 VBA:如何获取表单中的输入并在查询中使用它们

    HI 我有一个带有几个按钮的表单 每个按钮运行几行代码 代码中也有查询 例如 select from table where number 6 现在 如果我想在表单中输入数字 我该怎么做 在按钮附近添加一个未绑定的文本控件 更新您的按钮代码
  • 如何在 R 中使用神经网络包时实现自己的误差函数?

    我正在尝试在 R 中的神经网络包中实现自定义错误函数 通常使用代表误差平方和和交叉熵的 sse 和 ce 来计算误差 任何人都可以向我提供有关如何实现自己的误差函数的详细信息 虽然软件包说我们可以使用自定义的错误函数 但用户手册中没有对此提
  • 有没有办法判断 Safari 是否全屏? (例如 document.fullscreenElement)

    我正在尝试使用 Javascript 确定 Safari 是否处于全屏模式 Chrome 和 Mozilla 都使用带有供应商前缀的 document fullscreenElement 版本 isFullscreen function r
  • 单击 Firebase 动态链接后 - DynamicLinks.dynamicLinks().handleUniversalLink 返回 false

    我正在使用 Firebase 动态链接 并且在 Firebase 控制台中创建的链接很少 这是我复制粘贴到电子邮件并单击的示例短链接 https app xxx com deeplink xyz https app xxx com deep
  • 对象跟随鼠标光标

    我正在做一个Wpf应用程序 我创建了一个眼睛形状的控件 我在画布中放置了一个椭圆 眼睛 我的目的是当鼠标光标进入画布时 椭圆跟随鼠标光标 您对如何执行此任务有什么建议吗 非常感谢您的关注 Cheers EDIT 我已经更新了 Xaml 中的
  • 创建特定大小的零向量

    我想初始化一个具有在运行时确定的特定大小的零向量 在 C 语言中 它会是这样的 int main void uint size get uchar int A size size memset A 0 size size sizeof in
  • C++/CLI pin_ptr

    是 C CLI 的pin ptr http msdn microsoft com en us library 1dz8byfh 28v vs 80 29 aspx相当于C 的固定陈述 http msdn microsoft com en u
  • 警告:错误的管道:没有元素“x264enc”

    过去几天我一直在努力让它运行 我有一个需要 x264enc 的 gstreamer 命令 我正在运行一个Mac我似乎无法安装 x264 开发库 我已经安装了gst plugins bad但这没有帮助 我在论坛中读到 在安装之前我需要先安装
  • 如何拆分 Visual Studio 解决方案?

    我有一个 Visual Studio 2008 解决方案 其中包含超过 40 个相互依赖的 C 和 C CLI 项目 使用该解决方案的速度非常慢 通常我一次只需要几个项目 因此我决定将解决方案拆分为包含 3 5 个项目的多个解决方案 我还想
  • php 5.x 7.x,ssl pdo 错误:对等证书 CN=`someName' 与预期的 CN='someIP' 不匹配

    我们有一个在端口 3306 上带有 mysql 的服务器 我们有证书和密钥 并且我们尝试连接到该服务器 但我们看到这样的问题 对等证书 CN SomeName 与预期的 CN someIP 不匹配 我读了很多文章 但找不到 PDO PHP