在glassfish-remote上使用arquillian进行测试时出现CertificateException

时间:2013-07-17 08:48:58

标签: glassfish jboss-arquillian

当尝试使用arquillian并且adminHttps选项设置为true来运行测试时,得到了一个例外:

无法连接到DAS :( ...)| java.security.cert.CertificateException:不存在主题备用名称 org.jboss.arquillian.container.spi.client.container.LifecycleException:无法连接到DAS:(...)| java.security.cert.CertificateException:不存在主题备用名称     在org.jboss.arquillian.container.glassfish.CommonGlassFishManager.start(CommonGlassFishManager.java:77)     at org.jboss.arquillian.container.glassfish.remote_3_1.GlassFishRestDeployableContainer.start(GlassFishRestDeployableContainer.java:59)     在org.jboss.arquillian.container.impl.ContainerImpl.start(ContainerImpl.java:199)

我发现的例子没有打开ssl。 我认为我应该导入证书,但无法找到如何或是否真的存在这个问题。任何的想法?谢谢你的消遣。

2 个答案:

答案 0 :(得分:1)

虽然接受的答案显示此问题是由于使用容器自签名证书,但它并没有解释如何克服问题。希望这个答案可以帮助任何有同样问题的人。

您可以使用以下命令将容器自签名证书导入密钥库:

keytool -import -alias glassfish -file mycert.cer -keystore truststore.jks -storepass changeit

mycert.cer更改为证书文件的位置

truststore.jks更改为要用于存储证书的密钥库的位置。这可以是新的密钥库,也可以是现有密钥库。 storepass参数是密钥库的密码。如果您使用的是现有密钥库,则需要指定与密钥库关联的密码。

将自签名证书导入密钥库后,需要告知运行Arquillian的JVM使用密钥库。这可以通过将系统参数javax.net.ssl.trustStore设置为密钥库的位置来完成。例如javax.net.ssl.trustStore=truststore.jks

答案 1 :(得分:0)

问题是由证书引起的。部署到另一台服务器时,您应该将证书从该服务器导入当前计算机(当使用自签名证书时)