在Glassfish Application Server中导入SSL证书

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Glassfish Application Server中导入SSL证书相关的知识,希望对你有一定的参考价值。

我正在尝试在Netbeans IDE上的项目上启用SSL并使用Glassfish应用程序服务器。

对于SSL;我按照下面的程序。

  1. 生成密钥库> keytool -genkey -alias client_keystore -keyalg RSA -keystore client_keystore.jks -keysize 2048
  2. 生成CSR> keytool -certreq -alias client_keystore -file yourcsrname.csr -keystore client_keystore.jks
  3. 将CSR提交给另一方。
  4. 从聚会上收到三张.pem证书。我将.pem转换为.crt为openssl x509 -outform der -in your-cert.pem -out your-cert.crt
  5. 将证书导入我的密钥库,如下所示;

keytool -import -trustcacerts -alias intermediate -file GoDaddy_Intermediate.crt -keystore client_keystore.jks

keytool -import -trustcacerts -alias root -file GoDaddy_Root.crt -keystore client_keystore.jks

keytool -import -trustcacerts -alias BizSwitch -file BizSwitch.crt -keystore client_keystore.jks

  1. 将密钥库导入默认的glassfish密钥库> keytool -importkeystore -srckeystore ~/Downloads/ipay/client_keystore.jks -destkeystore keystore.jks
  2. 重启glassfish服务器。

我不确定这是否全部,但我得到了sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target例外。

重新启动时,从glassfish日志中我看不到加载的证书。

我错过了什么吗?

答案

你的密钥库是在/ domains / domain1 / config文件夹中吗?

看起来像glassfish没有指向正确的密钥库,因为您正确导入了证书。

另一答案

您在别名client_keystore下创建了密钥对条目,因此您需要将服务器证书导入该别名和条目。假设BizSwitch是您的服务器名称,您需要-importcert -file BizSwitch.crt -alias client_keystore -keystore client_keystore.jks。如果你弄错了那个命令的输出应该是Certificate reply was installed NOT Certificate was added。 (后者适用于单独的CA证书,但不适用于服务器证书。)

此外,您不需要转换为DER。 keytool(或者更确切地说是CertificateFactory)已经能够阅读PEM证书超过十年,甚至是自2012年j7以来的PEM-comments评论。(对于其他一些加密对象,例如私钥,情况并非如此。)

另一答案

Yous还应该将证书导入JVM的信任库......

参考:Resolving javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed Error?

以上是关于在Glassfish Application Server中导入SSL证书的主要内容,如果未能解决你的问题,请参考以下文章

在 Glassfish 4.1 中部署 ADF application1.2.2.1.4.0

严重: Servlet threw load() exception java.lang.ClassNotFoundException: org.glassfish.jersey.servlet.Se

在API上的“post”方法获取“org.glassfish.jersey.message.internal.HeaderValueException”错误

Glassfish 上的安全 Web 服务客户端

GlassFish服务器安装可执行文件无法打开

Java SE 上的 JPA:对象:entity.Customer@5e80188f 不是已知的实体类型