草庐IT

java - SSLv2Hello - javax.net.ssl.SSLException : Received fatal alert: unexpected_message

coder 2024-04-02 原文

我正在尝试使用基于 Java 6(更新 31)的客户端调用在 JDK7/WildFly 8.2 上运行的受 SSL 保护的 Web 服务。

我在客户端遇到的第一个问题是:

javax.net.ssl.SSLException: Received fatal alert: unexpected_message

通过将两侧的 javax.net.debug 设置为 all,我在服务器端得到了以下提示:

javax.net.ssl.SSLHandshakeException: SSLv2Hello is disabled

快速研究shows那个,

SSLv2Hello disabled by default on the client: In Java SE 7, SSLv2Hello is removed from the default enabled protocol list on the client.

所以我尝试在 standalone.xml 中的 WildFly 上启用 SSLv2Hello:

<https-listener name="https" 
                socket-binding="https" 
                security-realm="UndertowRealm"
                enabled-protocols="SSLv2, SSLv2Hello, TLSv1, TLSv1.1, TLSv1.2"
                />

服务器上的结果是:

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

所以我意识到,我应该尝试在客户端 上强制使用 TLS,而不是在服务器 上启用SSLv2Hello。我尝试在我的 Web 服务调用之前设置 System.setProperty("https.protocols", "TLSv1"); 但没有效果。

为了让握手正常工作,我应该配置什么以及如何配置?

我已经从服务器上的默认 SSLSocketFactory 打印了支持的密码套件:

TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,
TLS_RSA_WITH_AES_128_CBC_SHA,
TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,
TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,
TLS_DHE_RSA_WITH_AES_128_CBC_SHA,
TLS_DHE_DSS_WITH_AES_128_CBC_SHA,
TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,
TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,
SSL_RSA_WITH_3DES_EDE_CBC_SHA,
TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,
TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,
SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA,
SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA,
TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,
TLS_ECDHE_RSA_WITH_RC4_128_SHA,
SSL_RSA_WITH_RC4_128_SHA,
TLS_ECDH_ECDSA_WITH_RC4_128_SHA,
TLS_ECDH_RSA_WITH_RC4_128_SHA,
SSL_RSA_WITH_RC4_128_MD5,
TLS_EMPTY_RENEGOTIATION_INFO_SCSV

最佳答案

您不需要在服务器上启用 SSLv2。您需要在客户端禁用 SSLv2Hello 协议(protocol),方法是从已启用的 TLS 协议(protocol)中删除 SSLv2Hello < em="">并留下其他人:

System.setProperty("https.protocols", "TLSv1,TLSV1.1,TLSV1.2");

也许 SSLv3 如果这能让它开心:它不会持续太久,所以尽量不要那样做。

请注意,这是一个伪协议(protocol)。它不是 SSLv2,它是一种兼容性措施,允许某些可能损坏的服务器接受 hello。然而,该 session 在 SSLv3 或更高版本上运行。它也已过时。

关于java - SSLv2Hello - javax.net.ssl.SSLException : Received fatal alert: unexpected_message,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30165487/

有关java - SSLv2Hello - javax.net.ssl.SSLException : Received fatal alert: unexpected_message的更多相关文章

  1. ruby - 使用 rbenv 和 ruby​​-build 构建 ruby​​ 失败,出现 undefined symbol : SSLv2_method - 2

    我正在尝试在配备ARMv7处理器的SynologyDS215j上安装ruby​​2.2.4或2.3.0。我用了optware-ng安装gcc、make、openssl、openssl-dev和zlib。我根据README中的说明安装了rbenv(版本1.0.0-19-g29b4da7)和ruby​​-build插件。.这些是随optware-ng安装的软件包及其版本binutils-2.25.1-1gcc-5.3.0-6gconv-modules-2.21-3glibc-opt-2.21-4libc-dev-2.21-1libgmp-6.0.0a-1libmpc-1.0.2-1libm

  2. ruby-on-rails - 语法错误 : unexpected $end when using if/else if? - 2

    我从我的一个Controller类中收到一个错误,我不知道为什么。错误是:SyntaxErrorinTermsController#show,syntaxerror,unexpected$end,expectingkeyword_end这是terms_controller.rb:classTermsController我的展示页面目前只包含:这可能是我遗漏的一些小东西-感谢您的帮助! 最佳答案 问题是end关键字不够,它在它之前找到了$end(代表文件结尾的标记)可以找到它要找的东西——另一个end。(end关键字的解析器标记是“k

  3. ruby-on-rails - rails 教程 : Putting flash messages in partial yields error "undefined method ` each' for nil:NilClass"? - 2

    这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:FlashMessagesinPartials(Rails3)我正在做MichaelHartl的Railstutorial和listing7.26将flash消息添加到应用程序布局:...">...这很好用。但是,我试图通过在我的部分文件夹中创建一个_flash.html.erb来清理这段代码...">-->...并且比使用......在我的应用程序布局中,我的所有Rspec测试开始失败,每个测试都显示以下消息:Failure/Error:before{visitsignup_path}ActionView:

  4. ruby-on-rails - Railscasts 第 362 集 - 导出到 Excel : How to avoid the warning message given by Excel 2010 when opening the file? - 2

    当使用RyanBates的Railscasts第362集关于导出到Excel(https://github.com/railscasts/362-exporting-csv-and-excel)的示例应用程序时,我注意到Excel2010(在Windows上)在打开.xls文件时给我一条警告消息我使用“下载为Excel”链接下载的文件。警告内容如下:“您尝试打开的文件...的格式与文件扩展名指定的格式不同。打开文件前请确认文件未损坏且来源可靠。是否要打开现在存档吗?”当我单击"is"时,我可以很好地打开文件。在使用Excel2011(在Mac上)时,我什至没有收到警告消息。但我希望能够

  5. ruby-on-rails - Capistrano gzip : stdin: unexpected end of file interruption - 2

    我在Capistrano部署方面遇到问题。部署过程因Gzip错误而被丢弃。它可以是什么?capflowdeploy*executing`flow'*executing`deploy'*executing`deploy:update'**transaction:start*executing`deploy:update_code'*getting(viacheckout)revisionto/tmp/20111214204507executinglocally:cp-R./tmp/20111214204507commandfinishedin413mscompressing/tmp/20

  6. ruby-on-rails - Rails 4.2 Action Controller :BadRequest custom error message - 2

    如果验证失败或参数丢失,我想从我的Controller返回400-错误请求。所以在我的Controller中如果有ifparams["patch"].nil?thenraiseActionController::BadRequest.new("TheJsonbodyneedstobewrappedinsidea\"Patch\"key")end我在我的应用程序Controller中发现了这个错误:rescue_fromActionController::BadRequest,with::bad_requestdefbad_request(exception)renderstatus:4

  7. ruby-on-rails - Rails 语法错误 : unexpected keyword_ensure, 期望输入结束 - 2

    我是Rails的新手,我尝试根据教程创建一个论坛应用程序。这是我的论坛页面,但我一直收到错误消息:syntaxerror,unexpectedkeyword_ensure,expectingend-of-inputExtractedsource(aroundline#33):3031这是抛出错误的论坛索引页面:ForumLastPosttopicsagobynoposts-->'Areyousure?',:method=>:delete%> 最佳答案 -->这是在做什么?一个html注释的ERB标签仍然会评估。去掉它。如果您想评论r

  8. ruby-on-rails - ruby rails : why do i get message for javascript and css after rails s? - 2

    railss=>StartedGET"/assets/application.css?body=1"for127.0.0.1at2011-10-1103:37:03-0900Servedasset/application.css-304NotModified(0ms)StartedGET"/assets/home.css?body=1"for127.0.0.1at2011-10-1103:37:03-0900Servedasset/home.css-304NotModified(0ms)StartedGET"/assets/jquery_ujs.js?body=1"for127.0.0

  9. ruby-on-rails - rake 数据库 :migrate giving 'unexpected\n' error - 2

    我使用Rails脚手架使用来自终端的命令制作模型:railsgeneratescaffoldVenuevenueid:string,venueName:string,venueAddress:string,venueCity:string,venueState:string,venueZip:integer,venuePhone:string,venueAge:int似乎安装或生成一切正常,但是当我运行rakedb:migrate时,出现以下错误:rakeaborted!/Users/Banderson/Documents/demo/db/migrate/20130202222224_

  10. ruby-on-rails - SSL_connect SYSCALL returned=5 errno=0 state=SSLv2/v3 读取服务器 hello A - Faraday::Error::ConnectionFailed - 2

    我在这里看到了很多答案,但没有一个有效。我正在使用omniauth-oauth2gem与第三方客户集成。我正在使用描述的设置阶段here但我总是收到这个错误:Authenticationfailure!failed_to_connect:Faraday::Error::ConnectionFailed,SSL_connectSYSCALLreturned=5errno=0state=SSLv2/v3readserverhelloAFaraday::Error::ConnectionFailed(SSL_connectSYSCALLreturned=5errno=0state=SSLv2

随机推荐