未经授权的访问被拒绝或安全设置已过期javax.net.ssl.SSLException:certificate_unknown在创建MobileFirst运行时

时间:2015-08-04 23:43:55

标签: ssl ibm-mobilefirst mobilefirst-server

我正在NonRminstrator模式下在RedHat上安装带有Liberty 8.5.5.4和Java 1.7.0的v7.0.0 MobileFirst Server。我遵循的步骤:

  1. 成功安装Liberty,创建服务器并验证它是否在messages.log中没有错误启动。
  2. 安装MFP服务器。
  3. 使用MFP服务器配置工具使用Liberty服务器创建MFP配置。
  4. 退回Liberty服务器并验证它是否以错误启动。
  5. 使用服务器配置工具创建MFP运行时。
  6. 退回服务器并在日志中观察SSL错误。
  7. SSL错误似乎与Liberty试图与JMX REST客户端通信有关 - 至少这是我的假设,因为我还没有调用适配器。

    我用于Runtime的WAR文件来自于在MFP Studio Liberty开发服务器中构建并运行良好的项目。

    可以在https://www.dropbox.com/s/o1frf7pjszm46n6/messages.log?dl=0找到完整的日志,但这是相关的错误:

    [8/4/15 18:23:09:400 CDT] 00000050 com.ibm.ws.channel.ssl.internal.SSLHandshakeErrorTracker     E CWWKO0801E: Unable to initialize SSL connection. Unauthorized access was denied or security settings have expired. Exception is javax.net.ssl.SSLException: Received fatal alert: certificate_unknown
    at com.ibm.jsse2.o.a(o.java:6)
    at com.ibm.jsse2.SSLEngineImpl.a(SSLEngineImpl.java:409)
    at com.ibm.jsse2.SSLEngineImpl.a(SSLEngineImpl.java:469)
    at com.ibm.jsse2.SSLEngineImpl.j(SSLEngineImpl.java:181)
    at com.ibm.jsse2.SSLEngineImpl.b(SSLEngineImpl.java:176)
    at com.ibm.jsse2.SSLEngineImpl.a(SSLEngineImpl.java:495)
    at com.ibm.jsse2.SSLEngineImpl.unwrap(SSLEngineImpl.java:66)
    at javax.net.ssl.SSLEngine.unwrap(SSLEngine.java:23)
    at com.ibm.ws.channel.ssl.internal.SSLUtils.handleHandshake(SSLUtils.java:870)
    at com.ibm.ws.channel.ssl.internal.SSLConnectionLink.readyInbound(SSLConnectionLink.java:531)
    at com.ibm.ws.channel.ssl.internal.SSLConnectionLink.ready(SSLConnectionLink.java:304)
    at com.ibm.ws.tcpchannel.internal.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:174)
    at com.ibm.ws.tcpchannel.internal.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:83)
    at com.ibm.ws.tcpchannel.internal.WorkQueueManager.requestComplete(WorkQueueManager.java:504)
    at com.ibm.ws.tcpchannel.internal.WorkQueueManager.attemptIO(WorkQueueManager.java:574)
    at com.ibm.ws.tcpchannel.internal.WorkQueueManager.workerRun(WorkQueueManager.java:929)
    at com.ibm.ws.tcpchannel.internal.WorkQueueManager$Worker.run(WorkQueueManager.java:1018)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:906)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:929)
    at java.lang.Thread.run(Thread.java:796)
    

1 个答案:

答案 0 :(得分:0)

解决了它。我回到了一个我认识的系统并开始寻找差异。配置完全相同,但我注意到使用了工作系统

java version "1.7.0"
Java(TM) SE Runtime Environment (build pxa6470sr7fp1-20140708_01(SR7 FP1))
IBM J9 VM (build 2.6, JRE 1.7.0 Linux amd64-64 Compressed References 20140627_204598 (JIT enabled, AOT enabled)
J9VM - R26_Java726_SR7_20140627_0924_B204598
JIT  - r11.b06_20140409_61252.04
GC   - R26_Java726_SR7_20140627_0924_B204598_CMPRSS
J9CL - 20140627_204598)
JCL - 20140707_01 based on Oracle **7u65-b16**

抛出SSL错误的系统正在运行

java version "1.7.0"
Java(TM) SE Runtime Environment (build pxa6470sr6fp1ifix-20140220_01(SR6 FP1+IX90136+IX90137))
IBM J9 VM (build 2.6, JRE 1.7.0 Linux amd64-64 Compressed References 20140106_181350 (JIT enabled, AOT enabled)
J9VM - R26_Java726_SR6_20140106_1601_B181350
JIT  - r11.b05_20131003_47443.02
GC   - R26_Java726_SR6_20140106_1601_B181350_CMPRSS
J9CL - 20140106_181350)
JCL - 20140103_01 based on Oracle **7u51-b11**

我在新系统上安装了7u65-b16,在该版本的Java下重新启动了Liberty,现在看起来都很好。