知識庫

在 GlassFish 應用程式伺服器安裝 SSL 證書

本文將指導您如何在GlassFish開源應用程序伺服器上進行SSL安裝過程。我們使用以下軟件和證書進行測試:

  • Ubuntu伺服器 16.04 LTS;
  • Oracle下載門戶下載的GlassFish 4.1.1;
  • PositiveSSL單域證書。

要獲得可以安裝在您的伺服器實例上的SSL證書,您需要購買一個,為您希望保護的域名生成CSR代碼並激活證書。證書頒發後,證書文件將通過電子郵件發送。

將證書文件匯入密鑰庫

要執行這些步驟,您需要定位用於CSR代碼生成的原始密鑰庫。您可以使用PEM編碼或PKCS#7證書文件匯入到密鑰庫中。

PEM

要匯入PEM編碼的證書,應使用您的域名.crt及相應的CA捆綁文件。如果您以單個文件(例如yourdomain.ca-bundle)收到CA捆綁,您需要使用文本編輯器打開它,並將每個證書區塊保存到單獨的.crt文件中。您也可以收到作為3個單獨文件的證書鏈。根據本指南的PositiveSSL證書,我們的證書鏈將由AddTrustExternalCARoot.crt、COMODORSAAddTrustCA.crt、COMODORSADomainValidationSecureServerCA.crt和zbtest.crt文件組成。

我們將使用 'keytool' 工具來匯入證書。以下是命令序列:

keytool -import -trustcacerts -alias root -file AddTrustExternalCARoot.crt -keystore zbtest.jks

keytool -import -trustcacerts -alias intermediate2 -file COMODORSAAddTrustCA.crt -keystore zbtest.jks

keytool -import -trustcacerts -alias intermediate1 -file COMODORSADomainValidationSecureServerCA.crt -keystore zbtest.jks

keytool -import -trustcacerts -alias zbtest -file zbtest.crt -keystore zbtest.jks

注意:每個證書文件需要使用唯一的別名值進行匯入,並且域名證書的別名必須與密鑰庫別名匹配。

PKCS#7

PKCS#7格式的證書通常保存在yourdomain.cer或yourdomain.p7b文件中。這種格式設計用於將域名證書和CA捆綁合併成一個單一編碼的證書區塊,通常封閉在-----BEGIN PKCS7-----和-----END PKCS7-----標頭之間。因此,必須僅調用一次匯入命令:

keytool -import -trustcacerts -alias zbtest -file zbtest.p7b -keystore zbtest.jks

將原始密鑰庫匯入Glassfish默認密鑰庫

在證書成功匯入到最初用CSR代碼生成的密鑰庫之後,我們需要將證書和相應的私鑰移動到名為'keystore.jks'的Glassfish默認密鑰庫中。在我們的情況下,它位於/opt/glassfish4/glassfish/domains/domain1/config目錄中,不過該文件的路徑可能會根據Glassfish安裝文件夾和操作系統稍有不同。

以下keytool命令應用於將一個密鑰庫匯入到另一個密鑰庫:

keytool -importkeystore -srckeystore zbtest.jks -destkeystore keystore.jks

如果密鑰庫存放在不同的目錄中,應在匯入命令中指定相對或絕對路徑(例如,/etc/ssl/zbtest.jks)。

注意:由於終端密鑰庫密碼和Glassfish主密碼必須匹配,請確保源和目標密鑰庫的密碼一致。如果不同,可以使用'change-master-password'子命令在指定源密鑰庫密碼的情況下更改Glassfish主密碼。此操作也會更新目標密鑰庫密碼。

編輯Glassfish管理控制台中的http-listeners

為了將新匯入的證書綁定到Glassfish上的安全端口,我們需要打開相應的http-listener設置,並將Certificate NickName字段的值更改為域名證書的別名值:

gfish1

您可以從管理控制台左側導航面板按照此路徑訪問上面的頁面:配置 > server-config > HTTP服務 > HTTP監聽器 > http-listener-2 > SSL標籤。

http-listener-2的默認端口設置為8181,雖然也可以在同一配置頁的常規標籤中變更。最常用於提供網頁內容的端口是443,因此也可以使用它,除非您需要為您的項目目的使用自定義端口:

gfish2

當Certificate NickName和端口值更新後,單擊右上角的保存按鈕以應用更改。

還可以為通常在4848端口訪問的Glassfish管理控制台登錄頁面安裝相同的證書。為此,只需打開位於http-listeners相同部分的admin-listener配置頁,轉到SSL標籤,並將Certificate NickName字段值更改為新證書的別名值。然後,單擊右上角的保存按鈕。

就這樣 - 現在證書應已安裝以供應用程序服務和訪問管理控制台。要檢查安裝情況,您可以使用這個在線工具。檢查時確保輸入正確的端口號。