调试Jetty

7
我正在设置一个独立的(非嵌入式)jetty 9.2.1,并使用https。在我的本地环境中,我对自签名证书进行了一些测试,一切都很好。现在我正在设置一个uat服务器(类似于我将在生产中获取的服务器),但是我无法正确地运行https。这是我的步骤:
1)我创建了一个密钥库,生成了证书请求并提交到我的CA,获得了签名证书,并在密钥库中导入了新的和根证书。 2)我可以验证密钥库看起来不错,并通过执行以下操作进行验证:
keytool -list -keystore jetty.jks

我可以看到所有证书都显示了它们的别名。
3)我将密钥库放在/etc文件夹中,并编辑了jetty-ssl.xml文件。
<Set name="KeyStorePath"><Property name="jetty.base" default="." />/<Property name="jetty.keystore" default="etc/jetty.jks"/></Set>
<Set name="KeyStorePassword"><Property name="jetty.keystore.password" default="somepassword"/></Set>
<Set name="KeyManagerPassword"><Property name="jetty.keymanager.password" default="somepassword"/></Set>
<Set name="TrustStorePath"><Property name="jetty.base" default="." />/<Property name="jetty.truststore" default="etc/jetty.jks"/></Set>
<Set name="TrustStorePassword"><Property name="jetty.truststore.password" default="somepassword"/></Set>

在启动时,我可以看到HTTP和HTTPS连接器都处于“已启动”状态。
10927 [main] INFO  org.eclipse.jetty.server.ServerConnector  - Started ServerConnector@231e04a9{HTTP/1.1}{0.0.0.0:8090}
11285 [main] INFO  org.eclipse.jetty.server.ServerConnector  - Started ServerConnector@4a1f826d{SSL-http/1.1}{0.0.0.0:8443}
11285 [main] INFO  org.eclipse.jetty.server.Server  - Started @12632ms

但是https没有响应,事实上我从netstat中发现在8443端口上没有任何监听(而在8090端口上显示正常)。
我尝试使用jetty随附的“样本”密钥库,并成功使其工作,这让我想到我的密钥库存在问题……但是,我既没有在控制台上看到错误,也没有在任何日志中看到错误(即使使用-DDEBUG=true启动),我可以看到密钥库的证书。
我还尝试使用“-Djetty.https-cert-alias=capi”来强制选择别名,但没有成功。
有什么思路来调试这个问题吗?
谢谢!
3个回答

8

我已添加以下属性以启用SSL调试:

-DDEBUG=true -Dorg.eclipse.jetty.LEVEL=DEBUG -Djavax.net.debug=ssl,handshake,data

那就解决了。;)

这会产生什么样的输出?与SunJSSE输出类似吗?谢谢。 - Diego Ramos

0
我所做的是将调试属性添加到Jetty启动脚本中:
-Djavax.net.debug=all

由于某些原因,我的upstart文件中所有的调试信息都可以在/var/log/upstart/myComponent.log中找到。


0

对我来说,这个能用:

 -DDEBUG=true -Dorg.mortbay.jetty.LEVEL=DEBUG -Djavax.net.debug=ssl,handshake,data -classpath

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接