链接mysql:javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
时间: 2023-11-14 12:12:10 浏览: 59
这个错误通常是由于Java版本过低或者MySQL版本过高导致的。解决方法如下:
1.升级Java版本到1.8以上。
2.检查MySQL版本是否支持TLSv1.2协议,如果不支持,可以尝试升级MySQL版本或者手动启用TLSv1.2协议。
3.在连接MySQL时,可以通过添加参数来指定使用的加密协议和加密算法,例如:jdbc:mysql://localhost:3306/test?useSSL=true&requireSSL=true&enabledTLSProtocols=TLSv1.2&sslCipherSuites=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256。
相关问题
mac启动项目报错Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
根据提供的引用内容,报错"Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)"通常是由于SSL握手过程中出现问题导致的。决这个问题的方法是设置MySQL的jdbc参数为"useSSL=false"。下面是一个示例代码,演示如何在Mac上启动项目并解决这个报错:
```shell
java -Djdbc.drivers=com.mysql.jdbc.Driver -Djavax.net.ssl.trustStore=/path/to/truststore -Djavax.net.ssl.trustStorePassword=truststore_password -Djavax.net.ssl.keyStore=/path/to/keystore -Djavax.net.ssl.keyStorePassword=keystore_password -Djavax.net.ssl.keyStoreType=JKS -Djavax.net.ssl.trustStoreType=JKS -Djavax.net.ssl.enabledProtocols=TLSv1.2 -Djavax.net.debug=ssl -jar your_project.jar
```
请注意替换以下参数:
- `/path/to/truststore`:指向您的信任库文件的路径。
- `truststore_password`:信任库的密码。
- `/path/to/keystore`:指向您的密钥库文件的路径。
- `keystore_password`:密钥库的密码。
- `your_project.jar`:您要启动的项目的jar文件。
这个命令将通过设置系统属性来配置SSL连接所需的参数,并启动您的项目。这样,您就可以解决报错"Caused by: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)"。
nested exception is: javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
这个异常信息表明SSL握手失败,原因是协议被禁用或者密码套件不合适。通常情况下,这个错误是由于客户端和服务器之间的加密协议不兼容导致的。建议检查客户端和服务器之间使用的加密协议是否相同,如果不同则需要升级其中的一方。同时,也可以尝试使用更高级别的加密协议来避免这个问题。如果仍然无法解决问题,建议查看SSL握手失败的详细日志,以便更好地了解问题的根本原因。