MySQL JDBC连接串中sslMode含义、与useSSL、requireSSL的关系

目录

  • 引言
  • 版本
  • SSL参数含义与默认值
  • 对应关系梳理
  • 详细含义-中英文对比
    • sslMode
    • useSSL
    • requireSSL
    • verifyServerCertificate
    • trustCertificateKeyStoreType
    • trustCertificateKeyStoreUrl
    • trustCertificateKeyStorePassword
    • fallbackToSystemKeyStore
    • clientCertificateKeyStoreType
    • clientCertificateKeyStoreUrl
    • clientCertificateKeyStorePassword
    • fallbackToSystemKeyStore

引言

从Java连接MySQL的连接属性中获取sslMode的含义

版本

驱动版本

<dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>8.0.29</version>
</dependency>

服务端版本

Database Version: 8.0.35

SSL参数含义与默认值

序号默认值含义
1sslModePREFERRED默认情况下,网络连接是SSL加密的;此属性允许关闭安全连接,或者选择不同的安全级别。
2useSSLtrue与服务器通信时使用SSL(true/false)
3requireSSLfalse如果useSSL=true,则要求服务器支持SSL连接
4verifyServerCertificatefalse
////
1trustCertificateKeyStoreTypeJKS受信任的根证书的密钥存储类型。
2trustCertificateKeyStoreUrl/受信任的根证书密钥存储的URL。
[CR]如果未指定,属性“fallbackToSystemTrustStore”将确定是否使用系统范围的信任存储。
3trustCertificateKeyStorePassword/受信任的根证书密钥存储的密码。
4fallbackToSystemKeyStoretrue没有为“clientCertificateKeyStoreUrl”设置值是否会返回到使用通过系统属性“javax.net.ssl.keyStore*”定义的系统范围的密钥存储。
////
1clientCertificateKeyStoreTypeJKS客户端证书的密钥存储类型。JVM支持的标准密钥存储类型是“JKS\”和“PKCS12\”
2clientCertificateKeyStoreUrl/客户端证书KeyStore的URL。
如果未指定,属性“fallbackToSystemKeyStore”将确定是否使用系统范围的密钥存储。
3clientCertificateKeyStorePassword/客户端证书密钥存储的密码。
4fallbackToSystemKeyStoretrue没有为“clientCertificateKeyStoreUrl”设置值是否会返回到使用通过系统属性“javax.net.ssl.keyStore*”定义的系统范围的密钥存储。"

对应关系梳理

sslMode含义useSSLrequireSSLverifyServerCertificate
DISABLED禁用:建立未加密的连接false
PREFERRED首选:(默认)如果服务器启用了加密连接,则建立加密连接,否则返回到未加密连接truefalsefalse
REQUIRED必须:如果服务器启用了安全连接,则建立安全连接,否则将失败truetruefalse
VERIFY_CA验证授权:类似于“REQUIRED\”,但还要根据配置的证书颁发机构(CA)证书验证服务器TLS证书;truetrue
VERIFY_IDENTITY验证身份:类似于“VERIFY_CA\”,但还要验证服务器证书是否与尝试连接的主机匹配。

详细含义-中英文对比

sslMode

By default, network connections are SSL encrypted; this property permits secure connections to be turned off, or a different levels of security to be chosen. 
The following values are allowed: 
\"DISABLED\" - Establish unencrypted connections; 
\"PREFERRED\" - (default) Establish encrypted connections if the server enabled them, otherwise fall back to unencrypted connections; 
\"REQUIRED\" - Establish secure connections if the server enabled them, fail otherwise; 
\"VERIFY_CA\" - Like \"REQUIRED\" but additionally verify the server TLS certificate against the configured Certificate Authority (CA) certificates;
\"VERIFY_IDENTITY\" - Like \"VERIFY_CA\", but additionally verify that the server certificate matches the host to which the connection is attempted.
[CR] This property replaced the deprecated legacy properties \"useSSL\", \"requireSSL\", and \"verifyServerCertificate\", 
which are still accepted but translated into a value for \"sslMode\" if \"sslMode\" is not explicitly set: 
\"useSSL=false\" is translated to \"sslMode=DISABLED\"; 
{\"useSSL=true\", \"requireSSL=false\", \"verifyServerCertificate=false\"} is translated to \"sslMode=PREFERRED\"; 
{\"useSSL=true\", \"requireSSL=true\", \"verifyServerCertificate=false\"} is translated to \"sslMode=REQUIRED\"; 
{\"useSSL=true\" AND \"verifyServerCertificate=true\"} is translated to \"sslMode=VERIFY_CA\". 
There is no equivalent legacy settings for \"sslMode=VERIFY_IDENTITY\". 
Note that, for ALL server versions, the default setting of \"sslMode\" is \"PREFERRED\", and it is equivalent to the legacy settings of \"useSSL=true\", \"requireSSL=false\", and \"verifyServerCertificate=false\", 
which are different from their default settings for Connector/J 8.0.12 and earlier in some situations. Applications that continue to use the legacy properties and rely on their old default settings should be reviewed.
[CR] The legacy properties are ignored if \"sslMode\" is set explicitly. If none of \"sslMode\" or \"useSSL\" is set explicitly, the default setting of \"sslMode=PREFERRED\" applies. "
默认情况下,网络连接是SSL加密的;此属性允许关闭安全连接,或者选择不同的安全级别。
允许使用以下值:
\“DISABLED\”-建立未加密的连接;
\"PREFERRED\" - (默认)如果服务器启用了加密连接,则建立加密连接,否则返回到未加密连接;
\“REQUIRED\”-如果服务器启用了安全连接,则建立安全连接,否则将失败;
\“VERIFY_CA\”-类似于“REQUIRED\”,但还要根据配置的证书颁发机构(CA)证书验证服务器TLS证书;
\“VERIFY_IDENTITY\”-类似于“VERIFY_CA\”,但还要验证服务器证书是否与尝试连接的主机匹配。
[CR]此属性替换了不推荐使用的旧属性\“useSSL\”、\“requireSSL\”和\“verifyServerCertificate\”,
它们仍然被接受,但如果没有明确设置\“sslMode\”,则转换为\“sslMode”的值:
\“useSSL=false\”被翻译为“sslMode=DISABLED\”;
{\“useSSL=true\”、“requireSSL=false\”、“verifyServerCertificate=false”}被翻译为“sslMode=PREFERRED\”;
{\“useSSL=true\”、\“requireSSL=true=”、“verifyServerCertificate=false\”}被翻译为\“sslMode=REQUIRED\”;
{\“useSSL=true\”AND\“verifyServerCertificate=true\”}被翻译为\“sslMode=VERIFY_CA\”。
“sslMode=VERIFY_IDENTITY\”没有等效的旧设置。
请注意,对于所有服务器版本,“sslMode”的默认设置为“PREFERRED”,它等效于“useSSL=true\”、“requireSSL=false”和“verifyServerCertificate=false”的旧设置,
在某些情况下,这与连接器/J 8.0.12及更早版本的默认设置不同。应审查继续使用旧属性并依赖其旧默认设置的应用程序。
[CR]如果显式设置了\“sslMode\”,则会忽略旧属性。如果没有显式设置“sslMode\”或“useSSL\”,则应用默认设置“sslMode=PREFERRED\”。"

useSSL

For 8.0.12 and earlier: Use SSL when communicating with the server (true/false), 
default is 'true' when connecting to MySQL 5.5.45+, 5.6.26+ or 5.7.6+, otherwise default is 'false'.
[CR] For 8.0.13 and later: Default is 'true'. DEPRECATED. See sslMode property description for details."
对于8.0.12及更早版本:与服务器通信时使用SSL(true/false),
连接到MySQL 5.5.45+、5.6.26+或5.7.6+时默认为“true”,否则默认为“false”。
[CR]对于8.0.13及更高版本:默认值为“true”。已弃用。有关详细信息,请参阅sslMode属性描述。"

requireSSL

For 8.0.12 and earlier: Require server support of SSL connection if useSSL=true? (defaults to 'false').
[CR] For 8.0.13 and later: DEPRECATED. See sslMode property description for details.",
对于8.0.12及更早版本:如果useSSL=true,则要求服务器支持SSL连接?(默认为“false”)。
[CR]对于8.0.13及更高版本:已弃用。有关详细信息,请参阅sslMode属性描述。",

verifyServerCertificate

For 8.0.12 and earlier: If \"useSSL\" is set to \"true\", should the driver verify the server's certificate? 
When using this feature, the key store parameters should be specified by the \"clientCertificateKeyStore*\" properties, rather than system properties. 
Default is 'false' when connecting to MySQL 5.5.45+, 5.6.26+ or 5.7.6+ and \"useSSL\" was not explicitly set to \"true\". Otherwise default is 'true'.
[CR] For 8.0.13 and later: Default is 'false'. DEPRECATED. See sslMode property description for details."
对于8.0.12及更早版本:如果“useSSL\”设置为“true\”,驱动程序是否应该验证服务器的证书?
使用此功能时,密钥存储参数应由“clientCertificateKeyStore*”属性指定,而不是由系统属性指定。
当连接到MySQL 5.5.45+、5.6.26+或5.7.6+时,默认值为“false”,并且“useSSL\”未明确设置为“true\”。否则,默认值为“true”。
[CR]对于8.0.13及更高版本:默认值为“false”。已弃用。有关详细信息,请参阅sslMode属性描述。"

trustCertificateKeyStoreType

Key store type for trusted root certificates.
[CR]NULL or empty means use the default, which is \"JKS\". 
Standard key store types supported by the JVM are \"JKS\" and \"PKCS12\", your environment may have more available depending on what security products are installed and available to the JVM.
受信任的根证书的密钥存储类型。
[CR]NULL或空表示使用默认值,即“JKS\”。
JVM支持的标准密钥存储类型是“JKS\”和“PKCS12\”,您的环境可能有更多可用的密钥存储类型,这取决于JVM安装的安全产品和可用的安全产品。

trustCertificateKeyStoreUrl

URL for the trusted root certificates key store.
[CR]If not specified, the property 'fallbackToSystemTrustStore' determines if system-wide trust store is used.
受信任的根证书密钥存储的URL。
[CR]如果未指定,属性“fallbackToSystemTrustStore”将确定是否使用系统范围的信任存储。

trustCertificateKeyStorePassword

Password for the trusted root certificates key store.
受信任的根证书密钥存储的密码。

fallbackToSystemKeyStore

Whether the absence of setting a value for 'clientCertificateKeyStoreUrl' falls back to using the system-wide key store defined through the system properties 'javax.net.ssl.keyStore*'.
没有为“clientCertificateKeyStoreUrl”设置值是否会返回到使用通过系统属性“javax.net.ssl.keyStore*”定义的系统范围的密钥存储。

clientCertificateKeyStoreType

Key store type for client certificates.
[CR]NULL or empty means use the default, which is \"JKS\". Standard key store types supported by the JVM are \"JKS\" and \"PKCS12\", 
your environment may have more available depending on what security products are installed and available to the JVM.",
客户端证书的密钥存储类型。
[CR]NULL或空表示使用默认值,即“JKS\”。JVM支持的标准密钥存储类型是“JKS\”和“PKCS12\”,
您的环境可能有更多的可用性,这取决于安装了哪些安全产品并且JVM可以使用这些产品。",

clientCertificateKeyStoreUrl

URL for the client certificate KeyStore[CR]If not specified, the property 'fallbackToSystemKeyStore' determines if system-wide key store is used.
客户端证书KeyStore的URL[CR]如果未指定,属性“fallbackToSystemKeyStore”将确定是否使用系统范围的密钥存储。

clientCertificateKeyStorePassword

Password for the client certificates key store.
客户端证书密钥存储的密码。

fallbackToSystemKeyStore

Whether the absence of setting a value for 'clientCertificateKeyStoreUrl' falls back to using the system-wide key store defined through the system properties 'javax.net.ssl.keyStore*'."
没有为“clientCertificateKeyStoreUrl”设置值是否会返回到使用通过系统属性“javax.net.ssl.keyStore*”定义的系统范围的密钥存储。"

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

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

相关文章

【YOLOv5/v7改进系列】引入Slimneck-GSConv

一、导言 GSConv旨在平衡模型的准确度与速度&#xff0c;针对自动驾驶车辆中目标检测任务设计。从类脑研究中得到的直观理解是&#xff0c;具有更多神经元的模型能够获得更强的非线性表达能力。但是&#xff0c;不容忽视的是生物大脑处理信息的强大能力和低能耗远远超过计算机…

C#知识|封装典型的SQLServer数据库查询方法。

哈喽,你好啊,我是雷工! 前边学习封装了增删改的方法封装: 《C#知识|通用数据访问类SQLHelper的编写》; 本节继续学习将两种典型的查询方法封装成类。 下边为学习笔记。 01 封装单一返回结果的封装 在查看封装后的代码之前,可以先看下封装前代码的写法: 《C#知识|通过A…

C++ 20新特性之结构化绑定

&#x1f4a1; 如果想阅读最新的文章&#xff0c;或者有技术问题需要交流和沟通&#xff0c;可搜索并关注微信公众号“希望睿智”。 什么是结构化绑定 在C 20出现之前&#xff0c;当我们需要访问一个结构体或类的多个成员时&#xff0c;通常使用.或->操作符。对于复杂的数据…

二、Nginx目录结构与基本运行原理

目录 一、目录结构 二、运行原理 一、目录结构 我们使用tree 命令查看nginx的目录。如果tree 命令失效&#xff0c;需要安装tree工具 [rootlocalhost local]# yum install -y tree[rootlocalhost /]# tree /usr/local/nginx /usr/local/nginx ├── client_body_temp # PO…

C语言 | Leetcode C语言题解之第129题求根节点到叶节点数字之和

题目&#xff1a; 题解&#xff1a; int sumNumbers(struct TreeNode* root) {if (root NULL) {return 0;}int sum 0;struct TreeNode* nodeQueue[2000];int numQueue[2000];int leftQueue 0, rightQueue 0;nodeQueue[rightQueue] root;numQueue[rightQueue] root->v…

Vue——初识组件

文章目录 前言页面的构成何为组件编写组件组件嵌套注册 效果展示 前言 在官方文档中&#xff0c;对组件的知识点做了一个很全面的说明。本篇博客主要写一个自己的案例讲解。 vue 官方文档 组件基础 页面的构成 说到组件之前&#xff0c;先大致说明下vue中页面的构成要素。 在…

手写数据集minist基于pytorch分类学习

1.Mnist数据集介绍 1.1 基本介绍 Mnist数据集可以算是学习深度学习最常用到的了。这个数据集包含70000张手写数字图片&#xff0c;分别是60000张训练图片和10000张测试图片&#xff0c;训练集由来自250个不同人手写的数字构成&#xff0c;一般来自高中生&#xff0c;一半来自工…

MTU相关随笔

一、MTU的概念 MTU&#xff08;最大传输单元&#xff09;&#xff1a;用来通知对方所能接受数据服务单元的最大尺寸&#xff0c;说明发送方能够接受的有效载荷大小。MTU是包或帧的最大长度&#xff0c;一般以字节记&#xff0c;如果过大在碰到路由器时会被拒绝转发&#xff0c…

SpringBoot项目本地运行正常,jar包运行时前端报错403:No mapping for......

SpringBoot项目本地运行正常&#xff0c;jar包运行时前端报错403&#xff1a;No mapping for… 提示&#xff1a;在部署jar包到云服务器上之前&#xff0c;一定要在本地运行jar包&#xff0c;查看前端代码是否运行正常&#xff0c;若报错的话可以节省很多时间 方式&#xff1a;…

SQL 如何获取A列相同但是B列不同的数据项

用户表里有两个字段&#xff1a;部门和职位。一个部门可能对应多个职位&#xff0c;多个部门也可能都有同一职位。比如&#xff1a; 部门 职位 财务 部长 财务 副部长 财务 会计 财务 职员 编辑 部长 编辑 副部长 编辑 主编 编辑 副主编 现在想通过筛选&#xff0c;获取职位名称…

友顺科技(UTC)分立器件与集成IC产品选型和应用

友顺科技股份有限公司成立于1990年&#xff0c;是全球领先的集成电路与功率半导体厂商 ,集团总部位于台北&#xff0c;生产基地位于福州、厦门。 友顺科技具有完整模拟组件产品线&#xff0c;其中类比IC涵盖各种稳压器、PWM控制IC, 放大器、比较器、逻辑IC、Voltage Translato…

基于飞腾 D2000 8 核+ 32G DDR+板载 6 千兆电口+ 4 千兆光口高性能网络安全主板

第一章、产品介绍 1.1 产品概述 XM-D2000GW是一款基于飞腾 D2000 8 核X100 桥片高性能网络安全主板&#xff0c;D2000 为飞腾首款支持 8 核桌面平 台处理器&#xff0c;支持双通道 DDR4-2666 内存&#xff0c;芯片内置国密 SM2/SM3/SM4/SM9 加速引擎&#xff0c;支持单精度、双…

gitee和github的协同

假设gitee上zhaodezan有一个开发库&#xff0c;但是从andeyeluguo上拉取最新的&#xff08;从github上同步过来最新的&#xff09; git remote add dbgpt_in_gitee https://gitee.com/andeyeluguo/DB-GPT.git remote -v git pull --rebase dbgpt_in_gitee main 有冲突可能需要…

使用Scapy框架分析HTTP流量

网络流量分析是网络安全和管理中的一个重要部分。通过分析网络流量&#xff0c;我们可以检测异常行为、诊断网络问题以及提升网络性能。本文将介绍如何使用Scapy框架分析HTTP流量。我们将从tcpdump导出的PCAP文件中提取HTTP流量&#xff0c;并进行简单的分析。 PCAP文件格式 …

【调试笔记-20240603-Linux-在 OpenWrt-23.05 上运行 ipkg-build 生成. ipk 安装包】

调试笔记-系列文章目录 调试笔记-20240603-Linux-在 OpenWrt-23.05 上运行 ipkg-build 生成. ipk 安装包 文章目录 调试笔记-系列文章目录调试笔记-20240603-Linux-在 OpenWrt-23.05 上运行 ipkg-build 生成. ipk 安装包 前言一、调试环境操作系统&#xff1a;Windows 10 专业…

Android11 AudioTrack和Track建立联系

应用程序创建AudioTrack时&#xff0c;导致AudioFlinger在播放线程中&#xff0c;创建Track和其对应。那它们之间是通过什么来建立联系传递数据的&#xff1f;答案是共享内存。 创建Track时&#xff0c;导致其父类TrackBase的构造函数被调用 //frameworks/av/services/audiofl…

数字化时代还需要传统智慧图书馆吗

尽管以电子阅览室代表的数字化时代带来了许多便利和创新&#xff0c;但传统智慧图书馆依然具有重要的价值和意义。以下是一些原因&#xff1a; 1. 保存历史文化&#xff1a;传统智慧图书馆是保存历史文化遗产的重要载体&#xff0c;收藏了许多珍贵的古籍、手稿和纸质图书&#…

Prop 和 State 有什么区别?

Prop (属性) 和 State (状态) 是 React 中两个非常重要的概念,它们之间有以下几个主要区别: 来源:Prop 是父组件传递给子组件的数据。State 是组件内部维护的数据。可变性:Prop 是不可变的(immutable)。一旦父组件传递给子组件,子组件就无法直接修改 prop。State 是可变的(mut…

基于 Amazon EC2 快速部署 Stable Diffusion WebUI + chilloutmax 模型

自2023年以来&#xff0c;AI绘图已经从兴趣娱乐逐渐步入实际应用&#xff0c;在众多的模型中&#xff0c;作为闪耀的一颗明星&#xff0c;Stable diffusion已经成为当前最多人使用且效果最好的开源AI绘图软件之一。Stable Diffusion Web UI 是由AUTOMATIC1111 开发的基于 Stabl…

力扣2090.半径为k的子数组平均值

力扣2090.半径为k的子数组平均值 accumulate函数&#xff1a;求一段和(起始迭代器&#xff0c;终止迭代器&#xff0c;初始值) class Solution {public:vector<int> getAverages(vector<int>& nums, int k) {int n nums.size();vector<int> res(n,-1…