当前位置: 首页 > news >正文

查看MySQL服务器是否启用了SSL连接,并且查看ssl证书是否存在

文章目录

一、查看MySQL服务器是否启用了SSL连接

1.登录MySQL服务器

2.查看SSL配置

二、查看证书是否存在


前言

查看MySQL服务器是否启用了SSL连接,并且查看ssl证书是否存在

一、查看MySQL服务器是否启用了SSL连接

1.登录MySQL服务器

在Linux终端中,可以通过以下命令登录MySQL服务器:

mysql -u username -p

其中,username为MySQL服务器的用户名。执行该命令后,会提示输入密码。

2.查看SSL配置

登录MySQL服务器后,可以使用以下命令查看SSL配置:

SHOW VARIABLES LIKE '%ssl%';

该命令将显示MySQL服务器的SSL配置信息,例如:

+---------------+---------------------------------+
| Variable_name | Value                           |
+---------------+---------------------------------+
| have_openssl  | YES                             |
| have_ssl     | YES                             |
| ssl_ca       | /etc/mysql/ssl/ca-cert.pem      |
| ssl_capath   |                                 |
| ssl_cert     | /etc/mysql/ssl/server-cert.pem  |
| ssl_cipher   |                                 |
| ssl_key      | /etc/mysql/ssl/server-key.pem   |
+---------------+---------------------------------+

其中,have_ssl的值为YES表示MySQL服务器启用了SSL连接。如果have_ssl的值为NO,则表示MySQL服务器未启用SSL连接。

如果MySQL服务器启用了SSL连接,还需要检查客户端是否配置了SSL证书。如果客户端未配置SSL证书,则无法使用SSL连接。具体的SSL连接配置可以参考MySQL官方文档。

二、查看证书是否存在

2.1、检查存在与否

你可以通过在终端中运行以下命令来检查MySQL服务器是否启用了SSL连接:

mysql -u <用户名> -p --ssl-mode=REQUIRED -e "SHOW STATUS LIKE 'Ssl_cipher'"

其中 `<用户名>` 是你的MySQL用户名。运行该命令后,系统会提示你输入MySQL密码。如果MySQL服务器已经启用SSL连接,命令行会返回一个类似于 `Ssl_cipher | AES128-SHA` 的输出。如果没有启用SSL连接,命令行会返回一个空的输出。

 2.2、不存在的解决方法

如果你运行 `SHOW STATUS LIKE 'Ssl_cipher'` 命令返回的结果为空,说明MySQL服务器没有启用SSL连接。

要启用MySQL服务器的SSL连接,你需要完成以下步骤:

1. 生成SSL证书和密钥文件。你可以使用以下命令生成SSL证书和密钥文件:

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/mysql/ssl/mysql-server.key -out /etc/mysql/ssl/mysql-server.crt

   这条命令将在 `/etc/mysql/ssl/` 目录下生成一个名为 `mysql-server.crt` 的证书文件和一个名为 `mysql-server.key` 的私钥文件。

2. 修改MySQL配置文件。

你需要编辑MySQL配置文件 `/etc/mysql/mysql.conf.d/mysqld.cnf`

并添加以下几行:

   [mysqld]
   ssl=ON
   ssl-cert=/etc/mysql/ssl/mysql-server.crt
   ssl-key=/etc/mysql/ssl/mysql-server.key

   这些配置将启用MySQL服务器的SSL连接,并指定证书和密钥文件所在的路径。

此处的wq是要按esc键,再加入的!!!! 

3. 重新启动MySQL服务器。你需要重新启动MySQL服务器以使配置生效:

    sudo systemctl restart mysql

   运行以上命令后,MySQL服务器就会启用SSL连接。

4. 检查SSL连接是否启用。你可以再次运行以下命令来检查MySQL服务器是否启用了SSL连接:

     mysql -u <用户名> -p --ssl-mode=REQUIRED -e "SHOW STATUS LIKE 'Ssl_cipher'"

   如果MySQL服务器已经启用SSL连接,命令行会返回一个类似于 `Ssl_cipher | AES128-SHA` 的输出。

再次运行上述的代码

2.3、如果2.2的方法使用完成之后还是不能正常的使用ssl证书,试一下这种方法

如果你已经按照之前提供的方法安装和配置了 MySQL 的 SSL 连接,但是在连接 MySQL 时仍然没有 SSL 值,那么可能是因为你未能正确地启用 SSL。

首先,你需要检查你的 MySQL 服务器是否已经启用了 SSL。你可以使用以下命令来检查:

SHOW VARIABLES LIKE '%ssl%';

如果你看到 `have_ssl` 的值为 `YES`,那么 SSL 已经启用。如果不是,你需要启用它。

在 Ubuntu 16.04 上启用 MySQL 的 SSL 连接,你需要在 MySQL 配置文件中添加以下行:

ssl-ca=/path/to/ca-cert.pem
ssl-cert=/path/to/server-cert.pem
ssl-key=/path/to/server-key.pem

其中 `/path/to/ca-cert.pem` 指向你的 CA 证书文件,`/path/to/server-cert.pem` 指向你的服务器证书文件,`/path/to/server-key.pem` 指向你的服务器私钥文件。

启用 SSL 之后,你需要重启 MySQL 服务器以使更改生效。你可以使用以下命令重启 MySQL 服务:

sudo service mysql restart

之后,你应该能够成功连接到 MySQL 并看到 SSL 值为 `Cipher in use is...`。如果仍然没有 SSL 值,你可以尝试在连接字符串中显式地指定 SSL:

jdbc:mysql://hostname:port/dbname?verifyServerCertificate=false&useSSL=true&requireSSL=true

其中 `useSSL=true` 表示启用 SSL,`requireSSL=true` 表示连接必须使用 SSL。

在 Ubuntu 16.04 上,MySQL 的配置文件位于 `/etc/mysql/mysql.conf.d/mysqld.cnf`。你需要使用 root 权限编辑该文件以添加 SSL 配置。你可以使用以下命令打开该文件:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

然后在 `[mysqld]` 部分添加以下行:

ssl-ca=/path/to/ca-cert.pem
ssl-cert=/path/to/server-cert.pem
ssl-key=/path/to/server-key.pem

其中 `/path/to/ca-cert.pem` 指向你的 CA 证书文件,`/path/to/server-cert.pem` 指向你的服务器证书文件,`/path/to/server-key.pem` 指向你的服务器私钥文件。请确保将这些路径替换为你自己的路径。

 完成后保存并退出该文件,然后重启 MySQL 服务器以使更改生效:

sudo service mysql restart

这样,MySQL 就已经启用了 SSL 连接。

总结

以上就是今天的内容~

最后欢迎大家点赞👍,收藏⭐,转发🚀,
如有问题、建议,请您在评论区留言💬哦。

相关文章:

查看MySQL服务器是否启用了SSL连接,并且查看ssl证书是否存在

文章目录 一、查看MySQL服务器是否启用了SSL连接 1.登录MySQL服务器 2.查看SSL配置 二、查看证书是否存在 前言 查看MySQL服务器是否启用了SSL连接&#xff0c;并且查看ssl证书是否存在 一、查看MySQL服务器是否启用了SSL连接 1.登录MySQL服务器 在Linux终端中&#xf…...

华为OD机试真题 Java 实现【表示数字】【牛客练习题】

一、题目描述 将一个字符串中所有的整数前后加上符号“*”,其他字符保持不变。连续的数字视为一个整数。 数据范围:字符串长度满足1≤n≤100 。 二、输入描述 输入一个字符串。 三、输出描述 字符中所有出现的数字前后加上符号“*”,其他字符保持不变。 四、解题思路…...

使用Python进行接口性能测试:从入门到高级

前言&#xff1a; 在今天的网络世界中&#xff0c;接口性能测试越来越重要。良好的接口性能可以确保我们的应用程序可以在各种网络条件下&#xff0c;保持流畅、稳定和高效。Python&#xff0c;作为一种广泛使用的编程语言&#xff0c;为进行接口性能测试提供了强大而灵活的工…...

sed编辑器

文章目录 一.sed命令基础1.sed概念2.sed的工作流程3.命令格式4.sed命令的常用选项5.sed命令的操作符 二.sed命令的打印功能1.打印文本文件内容1.1 格式1.2 默认打印方式 2.指定行打印2.1 指定行号打印2.2 只打印文件的行数2.3 即打印文件的行号也打印文件的内容2.4 即显示行也显…...

深入理解深度学习——正则化(Regularization):稀疏表示

分类目录&#xff1a;《深入理解深度学习》总目录 另一种策略是惩罚神经网络中的激活单元&#xff0c;稀疏化激活单元。这种策略间接地对模型参数施加了复杂惩罚。我们已经在《深入理解深度学习——正则化&#xff08;Regularization&#xff09;&#xff1a;参数范数惩罚》中讨…...

【Android】分别用JAVA和Kotlin实现横向扫描的动画效果

Android 横向扫描的动画可以通过使用 ViewPropertyAnimator 和 ObjectAnimator 来实现。 首先&#xff0c;在 XML 布局文件中创建一个 ImageView&#xff0c;并设置其宽度为 0dp&#xff0c;高度为 match_parent。然后&#xff0c;创建一个横向的渐变色 Drawable&#xff0c;并…...

长尾词挖掘,如何选择精准的长尾词优化?

长尾词的挖掘也是一门大学问&#xff0c;它存在多种不同的方法。最常用的方法是把关键词直接放搜索引擎的搜索框搜索和使用长尾词挖掘工具这两种。 以运动水壶为例。 关键词直接放搜索引擎的搜索框搜索&#xff0c;结果如下&#xff1a; 使用长尾词挖掘工具&#xff0c;…...

Python相关环境变量配置和模拟手机app登录

【java环境变量配置】 接着&#xff0c;打开系统->高级系统设置->环境变量。新建一个JAVA_HOME C:\Program Files\Java\jdk1.8.0_201&#xff08;这里是你的安装路径&#xff0c;最好复制粘贴&#xff09; 然后在Path下添加 %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin; 然后…...

c++ 11标准模板(STL) std::map(九)

定义于头文件<map> template< class Key, class T, class Compare std::less<Key>, class Allocator std::allocator<std::pair<const Key, T> > > class map;(1)namespace pmr { template <class Key, class T, clas…...

深入探索chatGPT插件:SceneXplain,Wolfram,和AppyPieAIAppBuilder

1. 引言 在这个日益依赖技术的世界中&#xff0c;AI插件已经成为了我们日常生活和工作的重要组成部分。在这篇博客中&#xff0c;我们将深入探索三个强大的AI插件&#xff1a;SceneXplain&#xff0c;Wolfram&#xff0c;和AppyPieAIAppBuilder&#xff0c;了解他们的功能&…...

华为OD机试真题B卷 Java 实现【停车场车辆统计】,附详细解题思路

一、题目描述 特定大小的停车场&#xff0c;数组cars[]表示&#xff0c;其中1表示有车&#xff0c;0表示没车。 车辆大小不一&#xff0c;小车占一个车位&#xff08;长度1&#xff09;&#xff0c;货车占两个车位&#xff08;长度2&#xff09;&#xff0c;卡车占三个车位&a…...

第二章:MySQL环境搭建

第二章&#xff1a;MySQL环境搭建 2.1&#xff1a;MySQL的下载、安装、配置 MySQL的四大版本 MySQL Community Server社区版本&#xff1a;开源免费、自由下载&#xff0c;但不提供官方技术支持&#xff0c;适用于大多数普通用户。MySQL Enterprise Edition企业版本&#xff1…...

生产环境之负载均衡LVS+keepalived方案(2)_LVS介绍

LVS简介 LVS&#xff08;Linux Virtual Server&#xff09;即Linux虚拟服务器&#xff0c;linux内核2.6.X之后的版本默认已集成了LVS模块&#xff08;内核模块名为&#xff1a;ipvs&#xff09;&#xff0c;实现了基于传输层的请求负载均衡调度方案&#xff0c;LVS支持的工作模…...

【parsel】------- PYTHON爬虫基础4

parsel 这个库可以对 HTML 和 XML 进行解析&#xff0c;并支持使用 XPath 和 CSS Selector 对内容进行提取和修改&#xff0c;同时它还融合了正则表达式提取的功能。 内容目录 from parsel import Selector提取节点提取 class 包含 item-0 的节点 提取文本获取提取到的所有 li…...

MySQL数据库从入门到精通学习第8天(表数据的查询)

表数据的查询 基本查询语句单表查询聚合函数查询多表连接查询子查询合并查询结果定义表和字段的别名使用正则表达式查询 基本查询语句 SELECT 语句非常的强大&#xff0c;是最常用的查询语句。他具有一个固定的格式&#xff0c;如下&#xff1a; SELECT 查询的内容 FROM 数据…...

什么是IPAM?如何使用IPAM来管理IP地址和DHCP?

在计算机网络中&#xff0c;IPAM&#xff08;IP Address Management&#xff09;是一种用于管理IP地址和DHCP&#xff08;Dynamic Host Configuration Protocol&#xff09;的工具或系统。IPAM旨在简化和集中管理IP地址分配、子网划分和DHCP配置等任务。本文将详细介绍IPAM的概…...

PCIE学习

目录 一、PCIE结构1、层次结构2、数据包TLPDLLP PCIE寄存器配置1、基址寄存器的作用2、基址寄存器的位置 三、PCIE读取数据 一、PCIE结构 1、层次结构 绝大多数的总线或者接口&#xff0c;都是采用分层实现的。PCIe也不例外&#xff0c;它的层次结构如下&#xff1a; PCIe定…...

商业智力,Social焕新|数说故事重磅发布“SocialGPT”,国内首个专注Social领域的商业大模型

AGI时代的到来&#xff0c;市场风云变幻&#xff0c;世界正在经历着一场技术革命的颠覆性洗礼。 2023年6月6日6时&#xff0c;数说故事正式对外发布数说故事“SocialGPT”&#xff0c;国内首个专注Social领域的商业大模型。数说故事“SocialGPT”大家昵称它为“社牛”大模型&a…...

STM32HAL库RS485-ModBus协议控制伺服电机

STM32HAL库RS485-ModBus协议控制伺服电机 一个月前&#xff0c;接手了一个学长的毕设小车&#xff0c;小车采用rs485通信的modbus协议驱动轮毂电机&#xff0c;与往常我学习的pwm控制电机方法大相径庭&#xff0c;在这里以这篇博客记录下该学习过程。 小车主要架构 电机型号 …...

【医学图像】图像分割系列.3 (uncertainty)

介绍几篇使用不确定性引导的医学图像分割论文&#xff1a;UA-MT&#xff08;MICCAI2019&#xff09;&#xff0c;SSL4MIS&#xff08;MICCAI2021&#xff09;&#xff0c;UG-MCL&#xff08;AIIM2022&#xff09;. Uncertainty-aware Self-ensembling Model for Semi-supervise…...

【JVM】- 内存结构

引言 JVM&#xff1a;Java Virtual Machine 定义&#xff1a;Java虚拟机&#xff0c;Java二进制字节码的运行环境好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收的功能数组下标越界检查&#xff08;会抛异常&#xff0c;不会覆盖到其他代码…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

第25节 Node.js 断言测试

Node.js的assert模块主要用于编写程序的单元测试时使用&#xff0c;通过断言可以提早发现和排查出错误。 稳定性: 5 - 锁定 这个模块可用于应用的单元测试&#xff0c;通过 require(assert) 可以使用这个模块。 assert.fail(actual, expected, message, operator) 使用参数…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

3-11单元格区域边界定位(End属性)学习笔记

返回一个Range 对象&#xff0c;只读。该对象代表包含源区域的区域上端下端左端右端的最后一个单元格。等同于按键 End 向上键(End(xlUp))、End向下键(End(xlDown))、End向左键(End(xlToLeft)End向右键(End(xlToRight)) 注意&#xff1a;它移动的位置必须是相连的有内容的单元格…...

视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)

前言&#xff1a; 最近在做行为检测相关的模型&#xff0c;用的是时空图卷积网络&#xff08;STGCN&#xff09;&#xff0c;但原有kinetic-400数据集数据质量较低&#xff0c;需要进行细粒度的标注&#xff0c;同时粗略搜了下已有开源工具基本都集中于图像分割这块&#xff0c…...

【从零学习JVM|第三篇】类的生命周期(高频面试题)

前言&#xff1a; 在Java编程中&#xff0c;类的生命周期是指类从被加载到内存中开始&#xff0c;到被卸载出内存为止的整个过程。了解类的生命周期对于理解Java程序的运行机制以及性能优化非常重要。本文会深入探寻类的生命周期&#xff0c;让读者对此有深刻印象。 目录 ​…...

云原生安全实战:API网关Kong的鉴权与限流详解

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 一、基础概念 1. API网关&#xff08;API Gateway&#xff09; API网关是微服务架构中的核心组件&#xff0c;负责统一管理所有API的流量入口。它像一座…...

嵌入式学习之系统编程(九)OSI模型、TCP/IP模型、UDP协议网络相关编程(6.3)

目录 一、网络编程--OSI模型 二、网络编程--TCP/IP模型 三、网络接口 四、UDP网络相关编程及主要函数 ​编辑​编辑 UDP的特征 socke函数 bind函数 recvfrom函数&#xff08;接收函数&#xff09; sendto函数&#xff08;发送函数&#xff09; 五、网络编程之 UDP 用…...

Linux 下 DMA 内存映射浅析

序 系统 I/O 设备驱动程序通常调用其特定子系统的接口为 DMA 分配内存&#xff0c;但最终会调到 DMA 子系统的dma_alloc_coherent()/dma_alloc_attrs() 等接口。 关于 dma_alloc_coherent 接口详细的代码讲解、调用流程&#xff0c;可以参考这篇文章&#xff0c;我觉得写的非常…...