2017-12-18 233 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。(對於某些其他隱私對象,例如私鑰,情況並非如此。)