【MySQL系列】Public Key Retrieval is not allowed

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。
img

  • 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老
  • 导航
    • 檀越剑指大厂系列:全面总结 java 核心技术点,如集合,jvm,并发编程 redis,kafka,Spring,微服务,Netty 等
    • 常用开发工具系列:罗列常用的开发工具,如 IDEA,Mac,Alfred,electerm,Git,typora,apifox 等
    • 数据库系列:详细总结了常用数据库 mysql 技术点,以及工作中遇到的 mysql 问题等
    • 懒人运维系列:总结好用的命令,解放双手不香吗?能用一个命令完成绝不用两个操作
    • 数据结构与算法系列:总结数据结构和算法,不同类型针对性训练,提升编程思维,剑指大厂

非常期待和您一起在这个小小的网络世界里共同探索、学习和成长。💝💝💝 ✨✨ 欢迎订阅本专栏 ✨✨

博客目录

      • 1. 问题背景
      • 2. 错误原因
      • 3. 解决方案
        • 3.1. 在 JDBC 连接串中加入 useSSL=false 参数
        • 3.2. 在 JDBC 连接串中加入 allowPublicKeyRetrieval=true 参数
      • 4. 结语

解析禁用 SSL/TLS 协议传输导致的公钥检索问题

在网络通信中,安全性是至关重要的,尤其是在数据传输涉及敏感信息时。SSL/TLS 协议是保障数据传输安全的重要手段之一。然而,在一些特定场景下,禁用 SSL/TLS 协议传输可能会引发一系列问题,其中之一便是“Public Key Retrieval is not allowed”(公钥检索不被允许)的错误。本文将探讨此错误的原因、可能遇到的场景以及解决方案。

image-20240324124142510

1. 问题背景

“Public Key Retrieval is not allowed”错误通常在客户端与服务器端的通信中出现。当 SSL/TLS 协议被禁用时,客户端无法通过正常的方式获取服务器的公钥,因而引发此错误。这个问题的根源在于,客户端在没有 SSL/TLS 协议的保护下,无法主动获取服务器的公钥,而服务器端也不会主动提供。这一情况可能出现在以下场景:

  • 新建数据库用户,首次登录;
  • 数据库的用户名、密码发生改变后登录;
  • 服务器端调用 FLUSH PRIVELEGES 指令刷新服务器缓存。

2. 错误原因

这一错误的产生主要是由于 SSL/TLS 协议的禁用所致。在安全的 SSL/TLS 通信中,客户端可以通过 SSL 握手过程获取服务器的公钥,从而确保通信的安全性。然而,当 SSL/TLS 协议被禁用时,客户端无法通过这一过程获取服务器的公钥,而此时又没有其他途径主动获取公钥,导致了“Public Key Retrieval is not allowed”错误的出现。

3. 解决方案

针对“Public Key Retrieval is not allowed”错误,我们可以采取一些解决方案来解决或避免这一问题的发生:

3.1. 在 JDBC 连接串中加入 useSSL=false 参数

JDBC 是 Java Database Connectivity 的缩写,用于 Java 程序与数据库进行连接和操作。在 JDBC 连接数据库时,可以通过在连接串中添加参数来配置连接的属性。其中,将 useSSL 参数设置为 false 可以禁用 SSL/TLS 协议,从而避免“Public Key Retrieval is not allowed”错误的发生。

3.2. 在 JDBC 连接串中加入 allowPublicKeyRetrieval=true 参数

除了禁用 SSL/TLS 协议外,还可以通过在 JDBC 连接串中添加 allowPublicKeyRetrieval 参数并设置为 true 来允许公钥检索。这样一来,即使禁用了 SSL/TLS 协议,客户端仍然可以通过此参数获取服务器的公钥,从而避免“Public Key Retrieval is not allowed”错误。

image-20240324124153258

4. 结语

在网络通信中,安全始终是首要考虑的因素之一。禁用 SSL/TLS 协议虽然在某些场景下是必要的,但也可能带来一些安全隐患,如“Public Key Retrieval is not allowed”错误。为了解决这一问题,我们可以采取一些措施,如在 JDBC 连接串中配置参数来调整连接属性,从而确保通信的安全性和稳定性。同时,我们也应该根据具体的场景和需求,谨慎地选择是否禁用 SSL/TLS 协议,以达到最佳的安全与效率的平衡。

通过上述措施,我们可以有效地解决“Public Key Retrieval is not allowed”错误带来的问题,保障网络通信的安全和稳定性,为应用程序的正常运行提供可靠的保障。

觉得有用的话点个赞 👍🏻 呗。
❤️❤️❤️本人水平有限,如有纰漏,欢迎各位大佬评论批评指正!😄😄😄

💘💘💘如果觉得这篇文对你有帮助的话,也请给个点赞、收藏下吧,非常感谢!👍 👍 👍

🔥🔥🔥Stay Hungry Stay Foolish 道阻且长,行则将至,让我们一起加油吧!🌙🌙🌙

img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/767228.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python灰帽子网络安全实践

教程介绍 旨在降低网络防范黑客的入门门槛,适合所有中小企业和传统企业。罗列常见的攻击手段和防范方法,让网站管理人员都具备基本的保护能力。Python 编程的简单实现,让网络运维变得更简单。各种黑客工具的理论和原理解剖,让人知…

基于Matlab的眼底图像血管分割,Matlab实现

博主简介: 专注、专一于Matlab图像处理学习、交流,matlab图像代码代做/项目合作可以联系(QQ:3249726188) 个人主页:Matlab_ImagePro-CSDN博客 原则:代码均由本人编写完成,非中介,提供…

车道线检测论文:《Ultra Fast Structure-aware Deep Lane Detection》

该论文标题为《Ultra Fast Structure-aware Deep Lane Detection》,作者是浙江大学计算机科学与技术学院的Zequn Qin、Huanyu Wang和Xi Li。论文提出了一种新颖的、简单而有效的车道检测方法,旨在解决具有挑战性场景下的车道检测问题,并实现极…

借用QStyledItemDelegate 在DataView中创建各种子控件

在Model/View 中,二维表格的输入方式可能各种各样,我们需要在单元格嵌入各种类型控件,但是能把各种控件整合一个委托类吗?本文进行了尝试。将创建各种控件的逻辑整合到一个委托类。效果图如下: 本文实现了在DataView 的…

【SpringMVC】知识汇总

SpringMVC 短暂回来,有时间就会更新博客 文章目录 SpringMVC前言一、第一章 SpingMVC概述二、SpringMVC常用注解1. Controller注解2. RequestMapping注解3. ResponseBody注解4. RequestParam5. EnableWebMvc注解介绍6. RequestBody注解介绍7. RequestBody与RequestP…

Echarts功能记录

基础配置 工具箱toolbox 对应功能 案例中使用到的第三方脚本

解决Animate.css动画效果无法在浏览器运行问题

背景 在开发官方网站的时候,临时更换了电脑,发现原本正常的动画效果突然不动了。 经过 chrome、Microsoft Edge都无法运行。 Animate.css | A cross-browser library of CSS animations. 问题排查 通过审查元素后发现类名是注入并且生效的。 验证 然…

【图解物联网】第3章 物联网设备

3.1 设备——通向显示世界的接口 3.1.1 为什么要学习设备的相关知识 经过前两章的学习,想必各位读者已经掌握物联网这个词描绘出的世界和用于实现物联网的系统架构了。基于这点,这一章将会为大家介绍在物联网世界中起着核心作用的因素,即设…

atoi函数(想要彻底了解atoi函数,那么看这一篇就足够了!)

前言:在学习C语言的时候,我们知道每个字符都有其所对应的ASCII码值,当我们使用49来打印字符时,打印出来的就是数字字符 ‘ 1 ’,那么字符能否直接被转换成对应的整型数字呢?答案是当然可以,这时…

印度洋涡旋统计

印度洋涡旋统计 clear;clc;clf;close all; %% 读取涡旋半径、时间范围、经纬度信息,以及涡旋点的经纬度;半径路径和涡旋极性; file2=‘D:\matlab_work\accept_work\涡旋统计的平面分布\eddy_trajectory_2.0exp_19930101_20200307.nc’; time=double(ncread(file2,‘time’)…

一文搞懂数据链路层

数据链路层 1. 简介2. MAC3. 以太网 1. 简介 (1)概念 链路(link)是一条无源的点到点的物理线路段,中间没有任何其他的交换结点。 数据链路(data link) 除了物理线路(双绞线电缆、同轴电缆、光线等介质)外&#xff0…

详细安装步骤:vue.js 三种方式安装(vue-cli)

Vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的渐进式框架。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。它不仅易于上手,还便于与第三方库或既有项目整合。 三种 Vue.js 的安装方法&…

matlab 将矩阵写入文件

目录 一、概述1、算法概述2、主要函数二、将矩阵写入到文本文件三、将矩阵写入电子表格文件四、将矩阵写入指定的工作表和范围五、将数据追加到电子表格六、将矩阵数据追加到文本文件七、参考链接本文由CSDN点云侠原创,原文链接。如果你不是在点云侠的博客中看到该文章,那么此…

代码随想录阅读笔记-栈与队列【删除字符串中的所有相邻重复项】

题目 给出由小写字母组成的字符串 S,重复项删除操作会选择两个相邻且相同的字母,并删除它们。 在 S 上反复执行重复项删除操作,直到无法继续删除。 在完成所有重复项删除操作后返回最终的字符串。答案保证唯一。 示例: 输入&am…

了解交互设计:定义、解析及案例演示!

交互设计作为现代设计领域的一个重要分支,对用户体验和产品的成功至关重要。然而,许多人并不了解交互设计的定义和实践方法。本文将深入分析交互设计的概念和重要性,分享精彩的案例,推荐有用的交互设计工具,帮助您创造…

解析SpringBoot自动装配原理前置知识:解析条件注释的原理

什么是自动装配? Spring提供了向Bean中自动注入依赖的这个功能,这个过程就是自动装配。 SpringBoot的自动装配原理基于大量的条件注解ConditionalOnXXX,因此要先来了解一下条件注解相关的源码。 以ConditionalOnClass为例 首先来查看Conditi…

02-MySQL数据库的基本使用与密码设置

一、服务端口 3306端口和33060端口,是我们启动数据库后开启的监听端口; 3306端口:是我们MySQL服务的监听端口,用来连接数据库使用; 33060端口:MySQL-shell服务的端口,MySQL-shell是MySQL架构集群…

Web前端-JS

JavaScript,简称js:负责网页的行为(交互效果)。是一门跨平台,面向对象的脚本语言(编写出来的语言不需要编译,通过浏览器的解释就可以运行) JS引入方式 1.内嵌样式 这样打开页面就会…

关系型数据库mysql(2)SQL语句

目录 一.SQL语句简介 1.1SQL语言 1.2SQL语句分类 1.3SQL分类 1.4SQL 语言规范 二.数据库基本操作 2.1查看数据库中的库信息 2.2查看数据库中的表信息 数据库内查看 数据库外查看 2.3显示数据库的结构(字段) ​编辑 2.4 字段属性 2.5常见的数…

解决方案:如何安装neo4j软件

文章目录 一、安装JDK二、安装neo4j 一、安装JDK 第一步先安装JDK,因为neo4j环境需要JDK,过程比较多,截图如下: 安装JDK网址 https://www.oracle.com/java/technologies/downloads winR,输入cmd,再输入j…