- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
长话短说;有什么原因导致在 Tomcat 上运行的应用程序无法与 Paypal 服务器通信?一些背景:我们正在 Liferay 上开发一系列 portlet,它们在某些时候与 paypal 服务器通信以启动和验证购买流程。这在没有任何特殊配置的情况下就像本地 tomcat 上的魅力一样工作,但是在安装 Liferay 和 portlet 之后它无法启动该过程。堆栈看起来像这样:
[16/12/14 13:51:01:728 GMT+01:00] 0000015d SystemOut O 13:51:01,727 ERROR [WebContainer : 2][render_portlet_jsp:132] null
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
at com.ibm.jsse2.o.a(o.java:33)
at com.ibm.jsse2.o.a(o.java:30)
at com.ibm.jsse2.SSLSocketImpl.b(SSLSocketImpl.java:168)
at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:318)
at com.ibm.jsse2.SSLSocketImpl.h(SSLSocketImpl.java:403)
at com.ibm.jsse2.SSLSocketImpl.a(SSLSocketImpl.java:431)
at com.ibm.jsse2.SSLSocketImpl.startHandshake(SSLSocketImpl.java:315)
at com.ibm.net.ssl.www2.protocol.https.c.afterConnect(c.java:103)
at com.ibm.net.ssl.www2.protocol.https.d.connect(d.java:42)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1184)
at java.net.HttpURLConnection.getResponseCode(HttpURLConnection.java:390)
at com.ibm.net.ssl.www2.protocol.https.b.getResponseCode(b.java:82)
at com.paypal.core.HttpConnection.execute(HttpConnection.java:93)
at com.paypal.core.APIService.makeRequestUsing(APIService.java:176)
at com.paypal.core.BaseService.call(BaseService.java:265)
at urn.ebay.api.PayPalAPI.PayPalAPIInterfaceServiceService.setExpressCheckout(PayPalAPIInterfaceServiceService.java:2196)
at urn.ebay.api.PayPalAPI.PayPalAPIInterfaceServiceService.setExpressCheckout(PayPalAPIInterfaceServiceService.java:2148)
我一直在“谷歌搜索”,但无法弄清楚错误可能出在哪里。我们已尝试注册签名者从 paypal 站点检索到的 Verisign 证书,但没有任何改变。
有人可以为我们指明正确的方向吗?谢谢!
O class com.ibm.websphere.ssl.protocol.SSLSocketFactory is loaded
O instantiated an instance of class com.ibm.websphere.ssl.protocol.SSLSocketFactory
O
handshake: true
O Ignoring unsupported cipher suite: SSL_RSA_WITH_AES_128_CBC_SHA
O Ignoring unsupported cipher suite: SSL_DHE_RSA_WITH_AES_128_CBC_SHA
O Ignoring unsupported cipher suite: SSL_DHE_DSS_WITH_AES_128_CBC_SHA
O %% No cached client session
O *** ClientHello, SSLv3
O RandomCookie: GMT: 1402031796 bytes = { 166, 100, 171, 183, 214, 31, 12, 68, 124, 68, 151, 195, 7, 4, 28, 112, 39, 90, 248, 143, 129, 106, 212, 33, 244, 40, 233, 94 }
O Session ID: {}
O Cipher Suites: [SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_RC4_128_SHA, SSL_RSA_WITH_DES_CBC_SHA, SSL_RSA_FIPS_WITH_DES_CBC_SHA, SSL_DHE_RSA_WITH_DES_CBC_SHA, SSL_DHE_DSS_WITH_DES_CBC_SHA, SSL_RSA_EXPORT_WITH_RC4_40_MD5, SSL_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA, SSL_RENEGO_PROTECTION_REQUEST]
O Compression Methods: { 0 }
O ***
O [write] MD5 and SHA1 hashes: len = 75
O 0000: 01 00 00 47 03 00 54 91 4f b4 a6 64 ab b7 d6 1f ...G..T.O..d....
0010: 0c 44 7c 44 97 c3 07 04 1c 70 27 5a f8 8f 81 6a .D.D.....p.Z...j
0020: d4 21 f4 28 e9 5e 00 00 20 00 04 00 05 00 0a fe ................
0030: ff 00 16 00 13 00 66 00 09 fe fe 00 15 00 12 00 ......f.........
0040: 03 00 08 00 14 00 11 00 ff 01 00 ...........
O WebContainer : 10, WRITE: SSLv3 Handshake, length = 75
O [Raw write]: length = 80
O 0000: 16 03 00 00 4b 01 00 00 47 03 00 54 91 4f b4 a6 ....K...G..T.O..
0010: 64 ab b7 d6 1f 0c 44 7c 44 97 c3 07 04 1c 70 27 d.....D.D.....p.
0020: 5a f8 8f 81 6a d4 21 f4 28 e9 5e 00 00 20 00 04 Z...j...........
0030: 00 05 00 0a fe ff 00 16 00 13 00 66 00 09 fe fe ...........f....
0040: 00 15 00 12 00 03 00 08 00 14 00 11 00 ff 01 00 ................
O [Raw read]: length = 5
O 0000: 15 03 00 00 02 .....
O [Raw read]: length = 2
O 0000: 02 28 ..
O WebContainer : 10, READ: SSLv3 Alert, length = 2
O WebContainer : 10, RECV TLSv1 ALERT: fatal, handshake_failure
O WebContainer : 10, called closeSocket()
O WebContainer : 10, handling exception: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
O
handshake: true
O Ignoring unsupported cipher suite: SSL_RSA_WITH_AES_128_CBC_SHA
O Ignoring unsupported cipher suite: SSL_DHE_RSA_WITH_AES_128_CBC_SHA
O Ignoring unsupported cipher suite: SSL_DHE_DSS_WITH_AES_128_CBC_SHA
O %% No cached client session
O *** ClientHello, SSLv3
O RandomCookie: GMT: 1402031797 bytes = { 153, 95, 153, 155, 68, 36, 152, 92, 71, 172, 226, 104, 156, 107, 235, 73, 63, 239, 198, 202, 166, 216, 158, 26, 45, 59, 169, 169 }
O Session ID: {}
O Cipher Suites: [SSL_RSA_WITH_RC4_128_MD5, SSL_RSA_WITH_RC4_128_SHA, SSL_RSA_WITH_3DES_EDE_CBC_SHA, SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA, SSL_DHE_RSA_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_3DES_EDE_CBC_SHA, SSL_DHE_DSS_WITH_RC4_128_SHA, SSL_RSA_WITH_DES_CBC_SHA, SSL_RSA_FIPS_WITH_DES_CBC_SHA, SSL_DHE_RSA_WITH_DES_CBC_SHA, SSL_DHE_DSS_WITH_DES_CBC_SHA, SSL_RSA_EXPORT_WITH_RC4_40_MD5, SSL_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, SSL_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA, SSL_RENEGO_PROTECTION_REQUEST]
O Compression Methods: { 0 }
O ***
O [write] MD5 and SHA1 hashes: len = 75
O 0000: 01 00 00 47 03 00 54 91 4f b5 99 5f 99 9b 44 24 ...G..T.O.....D.
0010: 98 5c 47 ac e2 68 9c 6b eb 49 3f ef c6 ca a6 d8 ..G..h.k.I......
0020: 9e 1a 2d 3b a9 a9 00 00 20 00 04 00 05 00 0a fe ................
0030: ff 00 16 00 13 00 66 00 09 fe fe 00 15 00 12 00 ......f.........
0040: 03 00 08 00 14 00 11 00 ff 01 00 ...........
O WebContainer : 10, WRITE: SSLv3 Handshake, length = 75
O [Raw write]: length = 80
O 0000: 16 03 00 00 4b 01 00 00 47 03 00 54 91 4f b5 99 ....K...G..T.O..
0010: 5f 99 9b 44 24 98 5c 47 ac e2 68 9c 6b eb 49 3f ...D...G..h.k.I.
0020: ef c6 ca a6 d8 9e 1a 2d 3b a9 a9 00 00 20 00 04 ................
0030: 00 05 00 0a fe ff 00 16 00 13 00 66 00 09 fe fe ...........f....
0040: 00 15 00 12 00 03 00 08 00 14 00 11 00 ff 01 00 ................
O [Raw read]: length = 5
O 0000: 15 03 00 00 02 .....
O [Raw read]: length = 2
O 0000: 02 28 ..
O WebContainer : 10, READ: SSLv3 Alert, length = 2
O WebContainer : 10, RECV TLSv1 ALERT: fatal, handshake_failure
O WebContainer : 10, called closeSocket()
O WebContainer : 10, handling exception: javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
O 10:41:09,593 ERROR [WebContainer : 10][PaypalUtils:145] Errores en setPaypalExpressCheckout
javax.net.ssl.SSLHandshakeException: Received fatal alert: handshake_failure
at com.ibm.jsse2.o.a(o.java:33)
at com.ibm.jsse2.o.a(o.java:30)
服务器控制台配置的SSL协议(protocol)为TLS。
最佳答案
通常在 Websphere 中,您需要导入要与之通信的服务器的证书。如果您手动尝试,您可能不会在链中导入适当的证书,而是在管理控制台中使用“从端口检索”。
另一种选择是,由于 Poodle 问题,Paypal 正在终止 SSL :)。在这种情况下,在管理控制台的安全菜单中将您的安全级别提高到 TLS
关于java - Websphere 8.5 上的 SSL handshake_failure(在 Tomcat 上工作),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27505954/
我们正在构建一个以 Websphere 7 作为目标环境的 web 应用程序,它使用 CXF 连接到 web 服务。我们已经使用 Jetty 在本地完成了测试,一切顺利。我们现在正在尝试在 Websp
我是一名 Java 程序员,想要开始使用 Websphere 应用程序服务器。有人可以建议一些好的介绍吗?书籍/文章/链接等 最佳答案 IBM 的红皮书是很好的入门资源,还有另一篇关于 IBM 开发人
我试图在 Websphere LP server.xml 文件中映射我的服务器公共(public) IP 地址,但是当我尝试从外部访问它时,出现连接错误。我尝试给 host="localhost"并尝
我试图在 Websphere LP server.xml 文件中映射我的服务器公共(public) IP 地址,但是当我尝试从外部访问它时,出现连接错误。我尝试给 host="localhost"并尝
在将应用程序从单个 Websphere Application Server 迁移到 Websphere 集群之前,我们应该注意什么 最佳答案 这是我根据经验列出的 list 。它并不完整,但应涵盖最
我已经为 WebSphere 中的容器设置了一些自定义属性,但我不知道如何读取这些属性。我试过 System.getProperty(...),但它是空的。 我看过对 JMX 的引用,但想知道是否有明
我目前正在研究 IBM Websphere Application Server 和 IBM Websphere Process Server 之间的区别? 我知道 Process Server 就像
我正在处理一个应用程序,它需要知道它是在 WAS 上运行还是在 Liberty Profile 上运行。 在 WAS 上,它必须调用 Admin API,但在 Liberty Profile 上,它必
我很难解决“找不到委托(delegate)人...”的问题。我阅读了所有文章,但我已成功将 ear 文件安装到 WAS 8.5 中。 此应用程序要求最终用户进行 LDAP 身份验证才能登录。我的 LD
我正在开发许多用于管理 WAS 基础设施的脚本,我觉得 IBM 的某个人搞砸了 wsadmin故意。这不可能是意外。 这是一个“简单”的例子: for node in AdminConfig.list
我删除了 C:\Program Files (x86)\IBM\WebSphere\AppServer\profiles 中的配置文件,它仍然显示在配置文件管理工具中,如何删除配置文件管理工具中的配置
关闭。这个问题是opinion-based 。目前不接受答案。 想要改进这个问题吗?更新问题,以便 editing this post 可以用事实和引文来回答它。 . 已关闭 8 年前。 Improv
我有一个 WebSphere 应用程序服务器 8,我在其中部署了一个企业应用程序。现在我想让该应用程序的 Web GUI 可以访问。因此,我设置了一个端口 (9080),添加了一个 Web 容器传输链
是否可以用 Weld 替换 WebSphere 8 的 CDI 提供程序 (OpenWebBeans)?如果做不到这一点,是否有任何方法可以在 WebSphere 中完全禁用 CDI? 我为什么需要这
我有一个带有@local 和@remote 注释的无状态EJB SessionBean。该代码在 weblogic 服务器中运行良好。但是,将其部署到 Websphere 时会出现以下异常。 bm.e
我们正在尝试安装 Websphere 应用程序服务器的补丁。但已经获得了 Websphere 商务服务器的说明。所以只是想知道两者是否相同并且可以应用相同的指令。 我们是否需要 root 访问权限来执
我已经安装了 WebSphere Liberty 配置文件 8.5 。我可以使用 http://localhost:9080 访问 WebSphere 服务器 但不确定如何启动 Admin Conso
我在 WebSphere 应用程序服务器上将一个依赖 jar 扔到我爆炸的 EAR 中。我需要停止/启动 EAR 才能让 WS 执行新代码。有没有办法从命令行执行此操作? 最佳答案 尝试运行这样的东西
我全新安装了 Wesphere 6.1 Fixpack 23。我部署了一个需要 MQSeries JMS 队列的应用程序。我设置了一个基于 MQSeries 提供者的请求和回复队列以及一个基于 MQS
session 超时后是否可以将用户带到自定义网页?在 websphere 中要设置的参数是什么? 最佳答案 我不知道 WAS 中有这样的设置。 我认为您最好的机会是实现 Filter这将检查 ses
我是一名优秀的程序员,十分优秀!