2017-12-18 229 views
0

我试图在NetBeans IDE上的项目上启用SSL并使用Glassfish应用服务器。在Glassfish应用服务器中导入SSL证书

对于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

  • 导入密钥库到默认的glassfish密钥库>keytool -importkeystore -srckeystore ~/Downloads/ipay/client_keystore.jks -destkeystore keystore.jks
  • 重新启动的GlassFish服务器。
  • 我不确定这是否全部,但我得到了sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target异常。

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

    我错过了什么吗?

    回答

    0

    是您的文件夹/ domains/domain1/config中的密钥库?

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

    +0

    是的,密钥库位于/ configs目录中。 ....我无法解决它为什么没有。 – user6721269

    0

    您创建别名下的密钥对进入client_keystore所以您需要导入您的服务器证书到别名条目。假设BizSwitch是您服务器的名称,您需要-importcert -file BizSwitch.crt -alias client_keystore -keystore client_keystore.jks。如果你得到它的话,该命令的输出应该是Certificate reply was installed NOT Certificate was added。 (后者对于单独的证书是正确的,但不是服务器证书。)

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