No appropriate protocol (protocol is disabled or cipher suites are inappropriate)
时间: 2023-09-16 21:16:18 浏览: 47
错误信息"No appropriate protocol(protocol is disabled or cipher suites are inappropriate)"通常表示在与SQL Server建立安全连接时,***<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [驱动程序无法通过使用安全套接字层(SSL)...错误:“No appropriate protocol(protocol is disabled or ciphe](https://blog.csdn.net/Faker__/article/details/121713495)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
相关问题
No appropriate protocol (protocol is disabled or cipher suites are inappropriate
"No appropriate protocol (protocol is disabled or cipher suites are inappropriate)"这个错误通常在使用HttpClient请求HTTPS时出现。这个错误表示没有合适的协议可用或密钥套件不合适。解决这个问题的方法有几种。
首先,检查你使用的JDK版本。如果你使用的是JDK8高版本,在做HTTPS数据推送时可能会遇到这个错误。可以尝试使用以下解决方法:
1. 将TLSv1协议改成null。在SSLConnectionSocketFactory的构造函数中,将参数new String[]{"TLSv1"}改成null。这样可以解决javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher suites are inappropriate)错误。
2. 修改HttpClient请求参数。使用SSLContext.getInstance("TLSv1.2")来创建SSLContext对象,然后将其传递给SSLConnectionSocketFactory的构造函数。这样可以确保使用TLSv1.2协议进行HTTPS请求。
如果以上方法仍然无法解决问题,可以尝试使用其他的解决方法。例如,检查服务器端的TLS配置是否正确,更新HttpClient库的版本或者使用其他的HTTP客户端库。
总结起来,解决"No appropriate protocol (protocol is disabled or cipher suites are inappropriate)"错误的方法包括将TLS协议改成null,使用TLSv1.2协议以及检查服务器端配置等。根据具体情况选择适合的解决方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span><span class="em">4</span>
No appropriate protocol (protocol is disabled or cipher suites are inappropriate).
"No appropriate protocol (protocol is disabled or cipher suites are inappropriate)"是一个javax.net.ssl.SSLHandshakeException异常的错误消息,它通常表示SSL握手失败,因为没有适当的协议可用或密码套件不合适。根据提供的引用内容,有几种解决方法可以尝试解决这个问题。
首先,可以尝试将TLSv1更改为null来解决此异常。这可以通过更改代码中的SSLConnectionSocketFactory来实现,如下所示:
```
SSLConnectionSocketFactory sslConnectionSocketFactory = new SSLConnectionSocketFactory(
sslContext,
null, // 将"TLSv1"改为null
null,
null,
new DefaultHostnameVerifier());
```
这将允许Java使用默认的TLS协议进行SSL握手,从而解决异常。
另外,你还可以检查Java安装目录中的安全文件夹,以确保其中的证书和策略文件正确配置。根据提供的引用内容,默认的Linux路径是`/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.275.b01-1.el8_3.x86_64/jre/lib/security`,而Windows路径是`C:\Program Files\Java\jdk1.8.0_261\jre\lib\security`。你可以进入该目录并检查相关文件,例如cacerts(包含信任的证书)和java.security(包含SSL/TLS相关配置),确保它们处于正确状态。
综上所述,解决"No appropriate protocol (protocol is disabled or cipher suites are inappropriate)"异常的方法包括更改代码中的协议设置和检查Java安装目录中的安全文件夹。这些方法应该能够帮助你解决这个问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [javax.net.ssl.SSLHandshakeException: No appropriate protocol (protocol is disabled or cipher su 解决...](https://blog.csdn.net/weixin_44629395/article/details/127123945)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]