2017-01-01 55 views
0

我有一個已經包含我的私鑰和公鑰合流取得了JKS文件中/鏈證書。 它在大多數瀏覽器中都能正常工作,儘管它只是一個小問題。 在sslshopper上,我收到以下消息:安裝使用Java密鑰工具

證書在所有Web瀏覽器中都不受信任。您可能需要 安裝中間體/鏈式證書以將其鏈接到受信任的根證書 。

我得到了CA鏈+根從Comodo,通讀並嘗試以下操作:

keytool -importcert -keystore fecru.jks -storepass SECRET -trustcacerts -alias chain -file cachain.bundle 

即使成功添加了證書的關鍵商店,我仍然得到同樣的結果。

我錯過了什麼?

+0

您的連鎖包文件可能包含多個證書。 IIRC,'keytool'不能處理bundle,只能處理單個證書,所以它可能導入了bundle中的第一個證書,而忽略了其餘的。 'keytool -list -v -keystore [yourkeystore]'顯示了什麼? –

+0

我也嘗試添加他們所有分開。相同的結果。我現在有4個別名。 1爲證書本身,1爲根,2中更多intermidiate。 – JustAGuy

回答

1

下面是我在我的「Java TLS與密鑰庫」備忘單,這是我需要參考所有的時間,因爲,出於某種原因,如果你不這樣做很好,似乎沒有任何工作。

  1. 生成服務器鍵(自簽名證書)

    $ keytool -genkey -keyalg RSA -sigalg SHA256withRSA -keysize 4096-alias ${HOSTNAME}-keystore ${HOSTNAME}.jks

  2. 創建證書籤名請求(CSR)

    $ keytool -certreq -sigalg SHA256withRSA -keystore ${HOSTNAME}.jks

  3. 讓您的企業社會責任由證書頒發機構(CA)簽署

  4. 導入證書回到你的密鑰庫,開始與CA的根證書和下降鏈回您的服務器的證書

    $ keytool -import -alias [Authority.CA] -trustcacerts -file [authority's CA cert] -keystore ${HOSTNAME}.jks

    $ keytool -import -alias [Authority.intermediate] -trustcacerts -file [authority's intermediate cert] -keystore ${HOSTNAME}.jks

    $ keytool -import-alias ${HOSTNAME}-file ${HOSTNAME}.crt -keystore ${HOSTNAME}.jks

我總是把密鑰庫的備份副本後,我生成我的服務器的密鑰,以防萬一我碰壞。

有幾件事情是極爲重要:

  1. 請記住,使用步驟1和4C相同alias(導入服務器的簽名證書)以上
  2. 記得設置Tomcat的<Connector>keyAlias屬性到您用於服務器證書的相同值(再次,與上述步驟1和4c相同的值)

I強烈建議使用Qualys's SSLTest工具來測試您的網站。這是我所知道的最全面的測試工具,並不是試圖向你推銷任何東西。