No appropriate protocol (protocol is disabled or cipher suites are inappropriate)(Java版)

这篇具有很好参考价值的文章主要介绍了No appropriate protocol (protocol is disabled or cipher suites are inappropriate)(Java版)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题

在访问MySQL时出现了,如下错误:

javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)

The following required algorithms might be disabled: SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, include jdk.disabled.namedCurves. Edit the list of disabled algorithms to include required algorithms. You can try to enable TLSv1 or TLSv1.1 first.

JDBC driver may have disabled TLS 1.1 and its earlier versions.

从这里就可以看出MySQL和客户端连接使用的tls版本,可能是TLSv1或者是TLSv1.1,需要放开jdk对TLSv1或者是TLSv1.1黑名单的限制。随便去掉一个TLSv1或者是TLSv1.1即可重现链接。

原因

查询JDK对TLS版本的黑名单限制:
vim /Library/Java/JavaVirtualMachines/jdk1.8.0_311.jdk/Contents/Home/jre/lib/security/java.security
No appropriate protocol (protocol is disabled or cipher suites are inappropriate)(Java版)
从这里就可以看出本地的JDK对TLSv1,TLSv1.1,有限制,具体配置如下:

jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
    DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
    include jdk.disabled.namedCurves

查询MySQL5.7版本文档,可以知道,MySQL支持TLSv1, TLSv1.1, TLSv1.2 版本。
No appropriate protocol (protocol is disabled or cipher suites are inappropriate)(Java版)
连接我的DataGrip的时候可以只使用了TLSv1, TLSv1.1,而不会使用 TLSv1.2 进行连接建立。
使用命令行登录MySQL,可以查询MySQL实例支持的TLS版本,以及当前连接使用的TLS版本。
No appropriate protocol (protocol is disabled or cipher suites are inappropriate)(Java版)
mysql实例支持的TLS版本:

SHOW GLOBAL VARIABLES LIKE 'tls_version';

mysql当前session的使用的TLS版本:

SELECT * FROM performance_schema.session_status
       WHERE VARIABLE_NAME IN ('Ssl_version','Ssl_cipher');

解决

方法1:jdk.tls.disabledAlgorithms接触限制

No appropriate protocol (protocol is disabled or cipher suites are inappropriate)(Java版)
去掉TLSv1.1的黑名单即可,即使用如下环境变量:
"-Djdk.tls.disabledAlgorithms=SSLv3, TLSv1, RC4, DES, MD5withRSA, DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, include jdk.disabled.namedCurves"

方法2:JDBC指定TLS连接版本

jdbc:mysql://:/?useSSL=true&enabledTLSProtocols=TLSv1.2

总结

尽可能用高版本的MySQL或指定session使用的tls版本为tlsv1.2即可。文章来源地址https://www.toymoban.com/news/detail-424103.html

参考:

  • Java调用ssl异常,javax.net.ssl.SSLHandshakeException: No appropriate protocol
  • 6.3.2 Encrypted Connection TLS Protocols and Ciphers
  • Java 1.8.0 enable TLS1.2 in JDBC connection

到了这里,关于No appropriate protocol (protocol is disabled or cipher suites are inappropriate)(Java版)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • javax.net.ssl.SSLHandshakeException No appropriate protocol报错解决方案

    javax.net.ssl.SSLHandshakeException No appropriate protocol报错解决方案

    用java开发了一个简单的***发送邮件***的程序,本地运行正常,但是上传到服务器就出现报错: 方案一 [原文参考地址](javax.net.ssl.SSLHandshakeException: No appropriate protocol报错解决_蓝缘的博客-CSDN博客) ​ 1、找到jdk目录/jre/lib/security/java.security,去掉jdk.tls.disabledAlgorithm中的SSLv3、T

    2023年04月15日
    浏览(7)
  • Java调用ssl异常,javax.net.ssl.SSLHandshakeException: No appropriate protocol

    Java调用ssl异常,javax.net.ssl.SSLHandshakeException: No appropriate protocol

      现象:sqlserver 2017 安装在docker里,系统是mac 13,java 1.8.371运行java程序提示上面ssl错误,根据百度提供的方法,修改文件,重启程序搞定。 解决办法:java.security 找到这个文件修改保存 发现是jdk1.8版本导致SSL调用权限上有问题,新电脑装的jdk是jdk1.8.0_291,版本比较高。搜到

    2024年02月13日
    浏览(11)
  • ElasticSearch学习(十二)—— es7.2日志警告SSLHandshakeException: no cipher suites in common

    设置xpack后启动es 日志如下 配置CA证书如下 生成CA证书 在es的bin下执行 Please enter the desired output file [elastic-stack-ca.p12]: // 设置文件生成名称(可回车跳过,默认为elastic-stack-ca.p12) Enter password for elastic-stack-ca.p12 : // 设置证书密码(如不设置也可回车跳过)  对生成的CA证书进行

    2024年02月07日
    浏览(11)
  • cURL error 1: Protocol “https“ not supported or disabled in libcurl

    cURL error 1: Protocol “https“ not supported or disabled in libcurl

    1、php项目composer update报错 2、curl -V检查 发现curl已经支持了https了 3、php版本检查 4、php插件检查 插件也已经含有openssl组件了 5、phpinfo检查 curl是否开启ssl 定位到问题所在,php7.4的 curl扩展不支持 https 需要重装 php7.4的curl扩展 6、curl下载 下载curl:https://curl.se/download.html 我下载

    2024年02月15日
    浏览(15)
  • java项目实现读写分离,项目连接Linux部署的数据库异常javax.net.ssl.SSLHandshakeException: No appropriate protocol

    java项目实现读写分离,项目连接Linux部署的数据库异常javax.net.ssl.SSLHandshakeException: No appropriate protocol

    1、对项目进行优化实现读写分离,项目启动时报错如下: Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate) 原因:javax.net.ssl.SSLHandshakeException:没有适当的协议(协议被禁用或密码套件不合适) 2、bug解决:     注意: useSSL=f

    2024年02月04日
    浏览(9)
  • You may need an appropriate loader to handle this file type, currently no loaders are configured to

    You may need an appropriate loader to handle this file type, currently no loaders are configured to

    代码从git仓库拉的最新代码,下载node_module依赖包无法运行,以前已经下载的依赖包可以运行。 原因: “@vueuse/head”: “^0.7.5”, 指的是 version 与version兼容 ,与2.3.1版本兼容,相当于2.X.X, 即=2.3.1 3.0.0,不改变大版本号。 也就是说看着是0.7.5,但是有更新的话就会下载 大于0.7

    2024年02月10日
    浏览(12)
  • HDFS Browse Directory目录显示 Path does exist on HDFS or WebHDFS is disabled.

    HDFS Browse Directory目录显示 Path does exist on HDFS or WebHDFS is disabled.

        在hadoop中新建目录 HDFS系统中Browse Directory目录显示 Path does not exist on HDFS or WebHDFS is disabled. Please check your path or enable WebHDFS  这里的/usr/dfstest并不是linux主机上的/usr目录,而是hadoop系统中的/usr目录,查看hadoop系统上是否有这个目录 可以看到,我的hadoop系统上,创建的目录

    2024年02月12日
    浏览(20)
  • 解决 Redis7.0远程连接报错:WRONGPASS invalid username-password pair or user is disabled.

    解决 Redis7.0远程连接报错:WRONGPASS invalid username-password pair or user is disabled.

    再设置bind 0.0.0.0 和protected-mode no以及密码之后,我通过本地工具远程连接服务器的redis始终连接不上,并且能够确认服务器上的redis是正常运行,本地也能telnt通服务器的6379端口,翻遍很多资料后发现:redis7.0升级了一个东西:当设置密码后,用户名不再是root,会有一个默认的

    2024年02月12日
    浏览(10)
  • SSL Medium Strength Cipher Suites Supported (SWEET32)

    SSL Medium Strength Cipher Suites Supported (SWEET32)

    Description The remote host supports the use of SSL ciphers that offer medium strength encryption. Nessus regards medium strength as any encryption that uses key lengths at least 64 bits and less than 112 bits, or else that uses the 3DES encryption suite. 远程主机支持使用提供中等强度加密的SSL密码。 Nessus认为中等强度是指使用密钥

    2024年02月03日
    浏览(11)
  • SSL Medium Strength Cipher Suites Supported (SWEET32) 漏洞修复

    SSL Medium Strength Cipher Suites Supported (SWEET32) 漏洞修复

    前言 安全部门对于我们内网开发段服务器进行漏洞扫描,扫描出的漏洞如下: 扫描测试 修复方法 gpedit.msc -- 计算机管理--管理模板, SSL的密码套件替换如下: 以上就是SSL Medium Strength Cipher Suites Supported (SWEET32) 漏洞修复方法。

    2024年02月11日
    浏览(8)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包