如何加固SQL通信安全_启用SSL加密确保数据传输安全
启用 require_secure_transportON 后连接被拒需确保客户端显式启用 SSL如 --ssl-modeREQUIRED、服务端 SSL 已正确配置have_sslYES并避免 localhost 走 socketPostgreSQL 需用 hostssl 规则配合 sslon 才真正强制加密Java 报 PKIX 错误是因 JVM 未信任 MySQL CA 证书须导入至 trustStore自签名证书仅建议内网测试使用生产环境应采用私有或公开 CA 管理。MySQL 启用 SSL 时 require_secure_transportON 导致连接拒绝怎么办直接开 require_secure_transportON 很容易让旧客户端连不上报错 ERROR 3159 (HY000): Connections using insecure transport are prohibited while --require-secure-transportON。这不是配置错了而是客户端没走 SSL。先确认服务端 SSL 已启用SHOW VARIABLES LIKE have_ssl; 和 SHOW VARIABLES LIKE ssl_mode; 都得是 YES 或 PREFERRED再查 SHOW STATUS LIKE Ssl%; 看是否有活跃加密会话。客户端必须显式声明使用 SSL命令行加 --ssl-modeREQUIRED否则即使服务端支持TCP 连接也默认走明文应用代码里如 Python 的 pymysql要传 ssl{ssl: {}} 或更严格的 ssl{ca: /path/to/ca.pem}空字典 ≠ 自动启用只是允许协商Docker 或容器环境注意localhost 可能走 socket 而非 TCPSSL 不生效改用 127.0.0.1 强制走网络栈PostgreSQL 的 pg_hba.conf 怎么写才真正强制 SSL只在 postgresql.conf 开 ssl on 没用真正控制是否加密的是 pg_hba.conf 的认证方式和 hostssl 规则。常见错误是把所有连接都写成 host结果明文流量照常通行。必须用 hostssl 行匹配对应客户端 IP 和数据库并指定 cert 或 scram-sha-256 等需 SSL 的认证方法。hostssl all all 0.0.0.0/0 scram-sha-256要求所有远程连接走 SSL 密码加密认证避免混用host 和 hostssl 规则同时存在时PostgreSQL 按顺序匹配靠前的 host 规则可能“截胡”掉本该加密的请求修改后必须 pg_ctl reload 或 SELECT pg_reload_conf();service postgresql restart 会中断连接不必要Java 应用连 MySQL 启用 SSL 后报 PKIX path building failed这是 JVM 找不到可信 CA 证书不是 MySQL 配置问题。JDBC URL 加了 useSSLtruerequireSSLtrue但驱动校验服务端证书时失败。根本原因是 Java 默认信任库$JAVA_HOME/jre/lib/security/cacerts里没有你的 MySQL 服务端所用 CA 的公钥。最简方案启动 JVM 时加参数 -Djavax.net.ssl.trustStore/path/to/mysql-ca.jks这个 JKS 文件需包含你 MySQL 的 CA 证书可用 keytool -importcert 导入别用 verifyServerCertificatefalse 关闭校验——这等于把加密通道降级为“可被中间人篡改的伪加密”Spring Boot 项目可在 application.yml 中配 spring.datasource.hikari.data-source-properties.sslTrustStore但路径必须是绝对路径且 JVM 有读权限自签名证书在生产环境能不能用能用但代价高每个客户端都要手动导入 CA 证书运维成本陡增且无法抵御证书吊销类攻击。小团队或内网测试用自签没问题一旦涉及多业务线、第三方对接或合规审计比如等保、GDPR就必须上公开 CA 或私有 CA 系统如 HashiCorp Vault PKI、OpenSSL CA。自签名证书的 Common Name 或 Subject Alternative Name 必须精确匹配客户端连接时用的域名/IP否则 JDBC、psql 等工具会因主机名验证失败而拒连MySQL 8.0 默认启用 sha256_password 插件若搭配自签证书又未同步更新客户端密码哈希方式可能触发 Client does not support authentication protocol证书有效期别设太长——自签证书过期比轮换密钥更难发现建议 ≤ 90 天并配合监控告警如用 openssl x509 -in server.pem -enddate -noout 检查SSL 加密本身不难配难的是让每条链路——从连接发起方、中间代理如 HAProxy、到数据库服务端——都对证书链、协议版本、密钥交换方式达成一致。漏掉任意一环看着像启用了实则裸奔。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2520958.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!