- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
AWS EC2 上的 MySQL 5.7 Ubuntu 16.04
我已经使用自签名证书通过 ssl 设置了复制。我可以使用带有 ssl-mode=VERIFY_IDENTITY 的 mysql 客户端从从属连接到主。复制也在 ssl 上工作,直到我尝试启用 MASTER_SSL_VERIFY_SERVER_CERT 以启用主机名验证。
启用后,从站不再能够向主站进行身份验证并收到 io 错误 2026,这只是一个通用的 ssl 连接失败错误。日志没有任何帮助,ssldump 也没有帮助,它只是显示在握手甚至开始之前连接被中止。
根据文档:
To activate host name identity verification, add the MASTER_SSL_VERIFY_SERVER_CERT option.
和
For a replication connection, specifying MASTER_SSL_VERIFY_SERVER_CERT=1 corresponds to setting --ssl-mode=VERIFY_IDENTITY
还有
Host name identity verification does not work with self-signed certificates.
https://dev.mysql.com/doc/refman/5.7/en/replication-solutions-encrypted-connections.html
那么如何在使用自签名证书进行复制期间启用主机名验证?文档似乎表明这是不可能的,但为什么我能够通过客户端使用 ssl-mode=VERIFY_IDENTITY 进行连接?
谢谢。
最佳答案
解决方案是将 MASTER_SSL_CA、MASTER_SSL_CERT 和 MASTER_SSL_KEY 添加到我的 CHANGE MASTER TO 语句中,以手动指向 ca、证书和 key ,而不是信任 mysql 从配置中读取它们。
据我所知,这意味着 mysql 文档是错误的。
他们说可以在 my.cnf 的 [client] 部分设置路径,但显然不是这样,至少对我而言是这样。无论出于何种原因,[client] 部分确实被 mysql 客户端使用,但在复制时被忽略。
我相信我也误解了自签名证书。 MASTER_SSL_VERIFY_SERVER_CERT 确实有效,因为我实际上没有自签名证书,我有自己的 CA 签名的证书。 CA 证书本身是自签名的,但这与看起来自签名的主/从证书不同。
最后,我完全误解了 MASTER_SSL_VERIFY_SERVER_CERT 的目的。事实证明我根本不需要它,因为我的个人 CA 无论如何只为这个域签署证书,所以通过检查服务器证书的通用名称是否与请求的域匹配没有任何好处。它总是会的。只有在使用为许多域签署证书的可信证书颁发机构时,验证才会有帮助。然后您需要验证证书是否属于您请求的域,否则您将容易受到中间人攻击。
希望这些信息对其他人有帮助。
关于amazon-web-services - 使用自签名证书验证复制从属服务器上的主机身份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53214592/
我正在 Jenkins 中配置从 Linux 节点。这里的多个标签的正确语法(分隔符和转义)是什么? 最佳答案 您应该使用 whitespaces 分隔标签。如果标签包含空格,您应该引用它(单引号和双
我已经设置了 master(192.168.1.10) 和 slave(192.168.1.11) postgresql。登录slave postgresql报错: postgres@sonia-Sy
我支持由小型企业托管的应用程序,基于 Web 的 ROR 应用程序在后端使用 pgsql 数据库。 Postgres 设置为复制到异地备用服务器,据我所知它工作正常,当我查询远程服务器时它显示它正在恢
这个方法是我写的(和其他帖子差不多) public void update(string fileName, string sheetName) { string connString = c
我已经为 MySQL 服务器设置了复制。我可以使用复制用户/密码从从机连接到主服务器。我已经运行了从属 SQL 线程,但是从属 I/O线程未运行,使用“显示从属状态”检查时从属 I/O 状态为空。可能
在使用Jenkins Docker插件时,可能由于错误而导致无法启动群集。我没有注意,目前有数千个脱机节点无法启动。 底线-是否可以批量删除Jenkin中的节点(从属),清理所有脱机节点甚至删除所有节
我正在尝试在一个旧项目中引入持续集成,我们遇到了非常具体的情况 - 可以将 CI 服务器只放在我们在 CentOS 上运行的测试服务器上。服务器有很多未使用的 RAM 和 CPU 功能。 但是,我们需
我最近更改了我的 jenkins 机器使用的其中一个从属设备的 DNS cname 记录。进行更改后,我更新了节点中的信息,使其指向新名称。从那时起,jenkins slave 无法启动并出现以下错误
我需要创建在 Amazon EC2 上的 Windows VM 下运行的 Jenkins 代理云。 我对此的看法是简单的场景: 我有几个预配置的 AMI,每个虚拟机都有与我的项目之一匹配的特定环境。我
使用 Jenkins EC2 插件,我无法让我的 Jenkins 主服务器通过 SSH 连接到我的 Jenkins 从服务器。从站启动并正确配置,但是: INFO: Connecting to 10.
奇怪的问题,我在工作区中有两个项目: 项目A 项目B 在 projectA 的 pom.xml 中我添加了: groupid projectB version 当我构建应用程序并部署到 tomca
在我的 Jenkinsfile 中出现错误后,从属代理 pod 似乎总是很快就会死亡并消失。有没有办法在我身处其中时执行它并使其保持事件状态?我使用 Helm 在 Kubernetes 上运行 Jen
我是一名优秀的程序员,十分优秀!