Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
只有当客户端和服务器位于同一主机上时,SSL上的JavaEE-EJB才能工作_Java_Jakarta Ee_Ssl_Glassfish_Rsa - Fatal编程技术网

只有当客户端和服务器位于同一主机上时,SSL上的JavaEE-EJB才能工作

只有当客户端和服务器位于同一主机上时,SSL上的JavaEE-EJB才能工作,java,jakarta-ee,ssl,glassfish,rsa,Java,Jakarta Ee,Ssl,Glassfish,Rsa,请帮帮我。我对此无能为力。我有gf 4.0.1和swing客户端。我想通过SSL获得EJB。我已经设置了所有证书。然而,只有当客户端和服务器在同一台主机上时,我才能让它工作。当它们在同一主机上时,我在tcpdump中看到的是: ........ 10.0.17.2.48524 > 10.0.17.2.3820: Flags [P.], cksum 0x378f (incorrect -> 0xf2b6), seq 399:756, ack 1085, win 273, option

请帮帮我。我对此无能为力。我有gf 4.0.1和swing客户端。我想通过SSL获得EJB。我已经设置了所有证书。然而,只有当客户端和服务器在同一台主机上时,我才能让它工作。当它们在同一主机上时,我在tcpdump中看到的是:

........ 
10.0.17.2.48524 > 10.0.17.2.3820: Flags [P.], cksum 0x378f (incorrect -> 0xf2b6), seq 399:756, ack 1085, win 273, options [nop,nop,TS val 347297976 ecr 347297966], length 357
13:01:26.334898 IP (tos 0x0, ttl 64, id 51559, offset 0, flags [DF], proto TCP (6), length 665)
    10.0.17.2.3820 > 10.0.17.2.48524: Flags [P.], cksum 0x388f (incorrect -> 0x626d), seq 1085:1698, ack 756, win 273, options [nop,nop,TS val 347297977 ecr 347297976], length 613
13:01:26.374075 IP (tos 0x0, ttl 64, id 39617, offset 0, flags [DF], proto TCP (6), length 52)
    10.0.17.2.48524 > 10.0.17.2.3820: Flags [.], cksum 0x9282 (correct), seq 756, ack 1698, win 289, options [nop,nop,TS val 347298017 ecr 347297977], length 0
13:01:26.375662 IP (tos 0x0, ttl 64, id 15848, offset 0, flags [DF], proto TCP (6), length 60)
    127.0.0.1.42403 > 127.0.0.1.3820: Flags [S], cksum 0x7255 (correct), seq 2517132554, win 32792, options [mss 16396,sackOK,TS val 347298018 ecr 0,nop,wscale 7], length 0
13:01:26.375678 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 60)
    127.0.0.1.3820 > 127.0.0.1.42403: Flags [S.], cksum 0x21e9 (correct), seq 2013817557, ack 2517132555, win 32768, options [mss 16396,sackOK,TS val 347298018 ecr 347298018,nop,wscale 7], length 0
........
也就是说,它从一个ip和端口开始工作,但在某些地方,它将ip更改为127.0.0.1,并建立新的连接:10.0.17.2.3820>10.0.17.2.48524(客户端端口48524),然后127.0.0.1.3820>127.0.0.1.42403(客户端端口42403)

当客户端和服务器在不同的主机上时,我没有得到任何异常,但客户端挂起。在日志中的服务器上,我有:

[2014-06-09T13:09:07.367+0400] [glassfish 4.0] [INFO] [] [] [tid: _ThreadID=139 _ThreadName=Thread-8] [timeMillis: 1402304947367] [levelValue: 800] [[
  p: thread-pool-1; w: 1, WRITE: TLSv1 Handshake, length = 48]]
[2014-06-09T13:09:07.367+0400] [glassfish 4.0] [INFO] [] [] [tid: _ThreadID=139 _ThreadName=Thread-8] [timeMillis: 1402304947367] [levelValue: 800] [[
  %% Cached server session: [Session-15, TLS_RSA_WITH_AES_256_CBC_SHA]]]
[2014-06-09T13:09:07.404+0400] [glassfish 4.0] [INFO] [] [] [tid: _ThreadID=139 _ThreadName=Thread-8] [timeMillis: 1402304947404] [levelValue: 800] [[
  p: thread-pool-1; w: 1, READ: TLSv1 Application Data, length = 352]]
[2014-06-09T13:09:07.408+0400] [glassfish 4.0] [INFO] [] [] [tid: _ThreadID=139 _ThreadName=Thread-8] [timeMillis: 1402304947408] [levelValue: 800] [[
  p: thread-pool-1; w: 1, WRITE: TLSv1 Application Data, length = 608]]
在客户端上,我不断收到以下消息(使用不同的密码套件):


怎么能修好呢?完整的客户端日志在这里

我找到了答案。我希望它对某人有用。问题是服务器将客户端重定向到127.0.0.1。原因是

InetAddress.getLocalHost()
在我的Linux机器上返回127.0.0.1。原因是我没有设置/etc/host。这就是为什么

hostname -i
返回127.0.0.1

编辑/etc/hosts后,无需重新启动服务器,只需重新启动glassfish即可。在domain.xml中,我还添加了:

<jvm-options>-Dcom.sun.CORBA.ORBServerHost=x.x.x.x</jvm-options>
-Dcom.sun.CORBA.ORBServerHost=x.x.x.x

另请参见

在客户端上启用更多密码套件
127.0.0.1
不是端口,而是本地主机的IP地址。@owlstead感谢您抽出时间。我知道127.0.0.1不是一个端口:)我的意思是在beggining,它是10.0.17.2.3820>10.0.17.2.48524(客户端端口48524),然后是127.0.0.1.42403>127.0.0.1.3820(客户端端口42403)。请您详细说明我必须启用什么芯片套件以及如何启用。或者至少是chiper说的。@owlstead我编辑了这个问题以便更清楚。@owlstead我查看了你的个人资料,发现你是安全方面的专家。这就是为什么我请求你的帮助,因为这是我第二年做不到的,没有任何人的帮助我也不会做。只是一个线索。只是一个提示。我将非常感谢你。恐怕没有太多的信息供我继续。您应该发布Glassfish配置。我不是SSL方面的超级专家,当然也不是Glashfish专家,因此我在这方面可能帮不了什么忙(我对Glashfish所做的唯一一件事就是决定不在其上使用WSDL安全性,而是自己对其进行编程,因为我无法验证其安全性——就在发现oracle攻击之前)@unwichtich不幸的是,我只能在两天内完成这件事——这是制度的规则。但如果你喜欢这个答案,你可以投赞成票:)。这真是一个很难回答的问题。
<jvm-options>-Dcom.sun.CORBA.ORBServerHost=x.x.x.x</jvm-options>