在啟用 HTTPS 之前,你需要一個有效的證書,如果你已經有了一個有效的證書,你可以直接跳過這個步驟,進入 step 2
。
你可以建立一個自簽名的證書,或者從信任的
Certificate Authority中獲得一個證書。
如果你的項目小組計劃使用 Confluence 伺服器移動 app。你需要你的證書是從信任的證書簽發機構簽發的。你不能使用自簽名的證書或者從一個不信任的機構獲得的證書,或者自由 CA。
選項 1: 建立一個自簽名證書
當你需要進行加密,但是你并不需要對網站的的請求校驗的話,自簽名證書能夠幫助你完成這個。在通常的情況下,你可以在你的測試環境下簽發你的自簽名證書,你也可以在你公司内部的網絡上簽發自簽名證書。
因為證書不是信任的組織簽發的(CA),使用者可能會收到站點不被信任,并且提供一個步驟讓使用者先确定,才能通路網站的資訊。這個通常是在第一次通路網站的時候出現的提示。如果你使用的 Confluence 的移動 app 的話,使用者不能通過你的自簽名證書通路你的 Confluence 站點。
在這個情況下,我們需要使用 Java 的
keytool
工具包。這個工具包是包含在 JDK 中的。如果你對指令行工具并不是十分熟悉的話,你可以考慮使用
KeyStore Explorer工具。
使用 keytool 來建立一個自簽名證書:
-
從指令行中,為你的作業系統運作正确的指令:
Windows
Linux (and MacOS)"%JAVA_HOME%\bin\keytool"
-genkeypair -keysize
2048
-alias tomcat -keyalg RSA -sigalg SHA256withRSA
$JAVA_HOME/bin/keytool -genkeypair -keysize
2048
-alias tomcat -keyalg RSA -sigalg SHA256withRSA
- 當出現提示後,為你的證書建立 密碼(password ),私有 key。
- 僅使用數字和英文字元。如果你使用了特殊字元,Tomcat 可能會出現錯誤。
- 請記錄你建立的密碼,在下一步中你需要使用到你建立的密碼。
- 預設的密碼是 '
'。changeit
- 根據提示來确定證書的細節。這些資訊被用來構造 X.500 實體中的 Distinguished Name (DN) 。
- First and last name:這個不是你的名字,這個是 Common Name (CN),例如 ' confluence.example.com '。CN 必須與 Confluence 使用的域名完全對應,否則 Tomcat 将不能使用你簽名的證書。
- Organizational unit:這個是證書使用的部門或者小組,例如 'marketing'。
- Organization:是你公司的名字,例如 'SeeSpaceEZ'。
- City, State / province, country code:這個是你公司的地理位置,例如 Sydney, NSW, AU。
- 輸出将會如下所示。輸入 '
' 來确定你輸入的内容。y
CN=
confluence.example.com,
OU=Marketing, O=SeeSpaceEZ, L=Sydney, ST=NSW, C=AU
- 當被詢問為 'tomcat' 準備使用的 密碼(password )的時候,輸入你第二步中輸入的密碼(在輸入密碼後單擊回車)。
- 'tomcat' 是你在 keytool 指令行中輸入的别名,在這裡用來對你提示。
- 你 keystore 執行個體必須和你的私有 key 有相同的密碼。這個是 Tomcat 伺服器要求的。
- 你的證書現在已經可以用了,進入 下面 的第二步。
選項 2: 使用 Certificate Authority 簽發的證書(推薦)
在生産環境中,你需要使用從
(CA) 簽發的證書。下面的内容是從
Tomcat documentation中拷貝出來的。
首先你需要建立本地證書,然後基于你建立的本地證書再建立一個 'certificate signing request' (CSR) 。你需要送出 CSR 到你的選擇的 CA 提供商上進行收取。CA 将會通過 CSR 将授權後的證書發給你。
- 使用 Java 的
工具來建立一個本地證書(請按照上面第一步所描述的内容)。keytool
- 從指令中,将會傳回下面的指令工具來建立所需要前面的證書。 替換
keytool -certreq -keyalg RSA -alias tomcat -file
certreq.csr
-keystore <MY_KEYSTORE_FILENAME>
為路徑和你本地證書建立<MY_KEYSTORE_FILENAME>
的檔案名。.keystore
- 送出建立的檔案為
到你希望進行授權的 CA。certreq.csr
請參考 CA 的文檔來找到如何進行這個操作。Confluence 6 通過 SSL 或 HTTPS 運作 - 建立或請求一個 SSL 證書 - CA 将會發個你已經簽名好的證書。
- 導入新證書到你的本地的 keystore: 一些 CA 可能要求你在安裝你的證書之前先安裝一個中間人證書。你應該按照 CA 提供的文檔來完成你本地證書的成功安裝。
keytool -importcert -alias tomcat -keystore <MY_KEYSTORE_FILENAME> -file <MY_CERTIFICATE_FILENAME>
如果你使用的是 Verisign 或 GoDaddy,然後你收到了錯誤的資訊,你可能需要将 PKCS12 和你的私鑰(private key)同時導出。
- 首先,删除添加到 keystore 中的所有 key:
keytool -delete -alias tomcat -keystore <MY_KEYSTORE_FILENAME>
- 然後導出為 PKCS12 格式:
openssl pkcs12 -export -in <MY_CERTIFICATE_NAME> -inkey <MY_PRIVATEKEY_NAME> -out <MY_PKC12_KEYSTORE_NAME> -name tomcat -CAfile <MY_ROOTCERTIFICATE_NAME-alsoCalledBundleCertificateInGoDaddy> -caname root
- 然後導入 PKCS12 到 jks 中:
keytool -importkeystore -deststorepass <MY_DESTINATIONSTORE_PASSWORD> -destkeypass <MY_DESTINATIONKEY_PASSWORD> -destkeystore <MY_KEYSTORE_FILENAME> -srckeystore <MY_PKC