天天看點

Confluence 6 通過 SSL 或 HTTPS 運作 - 建立或請求一個 SSL 證書

在啟用 HTTPS 之前,你需要一個有效的證書,如果你已經有了一個有效的證書,你可以直接跳過這個步驟,進入  step 2

你可以建立一個自簽名的證書,或者從信任的 

Certificate Authority

 中獲得一個證書。

如果你的項目小組計劃使用 Confluence 伺服器移動 app。你需要你的證書是從信任的證書簽發機構簽發的。你不能使用自簽名的證書或者從一個不信任的機構獲得的證書,或者自由 CA。

選項 1: 建立一個自簽名證書

當你需要進行加密,但是你并不需要對網站的的請求校驗的話,自簽名證書能夠幫助你完成這個。在通常的情況下,你可以在你的測試環境下簽發你的自簽名證書,你也可以在你公司内部的網絡上簽發自簽名證書。

因為證書不是信任的組織簽發的(CA),使用者可能會收到站點不被信任,并且提供一個步驟讓使用者先确定,才能通路網站的資訊。這個通常是在第一次通路網站的時候出現的提示。如果你使用的 Confluence 的移動 app 的話,使用者不能通過你的自簽名證書通路你的 Confluence 站點。

在這個情況下,我們需要使用 Java 的 

keytool

 工具包。這個工具包是包含在 JDK 中的。如果你對指令行工具并不是十分熟悉的話,你可以考慮使用 

KeyStore Explorer

 工具。

使用 keytool 來建立一個自簽名證書:

  1. 從指令行中,為你的作業系統運作正确的指令:

    Windows

    "%JAVA_HOME%\bin\keytool"

    -genkeypair -keysize

    2048

    -alias tomcat -keyalg RSA -sigalg SHA256withRSA

    Linux (and MacOS)

    $JAVA_HOME/bin/keytool -genkeypair -keysize

    2048

    -alias tomcat -keyalg RSA -sigalg SHA256withRSA

  2. 當出現提示後,為你的證書建立 密碼(password ),私有 key。
    • 僅使用數字和英文字元。如果你使用了特殊字元,Tomcat 可能會出現錯誤。
    • 請記錄你建立的密碼,在下一步中你需要使用到你建立的密碼。
    • 預設的密碼是 '

      changeit

      '。
  3. 根據提示來确定證書的細節。這些資訊被用來構造 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。
  4. 輸出将會如下所示。輸入 '

    y

    ' 來确定你輸入的内容。

    CN=

    confluence.example.com,

    OU=Marketing, O=SeeSpaceEZ, L=Sydney, ST=NSW, C=AU

  5. 當被詢問為 'tomcat' 準備使用的 密碼(password )的時候,輸入你第二步中輸入的密碼(在輸入密碼後單擊回車)。
    • 'tomcat' 是你在 keytool 指令行中輸入的别名,在這裡用來對你提示。
    • 你 keystore 執行個體必須和你的私有 key 有相同的密碼。這個是 Tomcat 伺服器要求的。
  6. 你的證書現在已經可以用了,進入  下面  的第二步。

選項 2: 使用 Certificate Authority  簽發的證書(推薦)

在生産環境中,你需要使用從 

 (CA) 簽發的證書。下面的内容是從 

Tomcat documentation

 中拷貝出來的。

首先你需要建立本地證書,然後基于你建立的本地證書再建立一個 'certificate signing request' (CSR) 。你需要送出 CSR 到你的選擇的 CA 提供商上進行收取。CA 将會通過 CSR 将授權後的證書發給你。

  1. 使用 Java 的 

    keytool

     工具來建立一個本地證書(請按照上面第一步所描述的内容)。
  2. 從指令中,将會傳回下面的指令工具來建立所需要前面的證書。

    keytool -certreq -keyalg RSA -alias tomcat -file

    certreq.csr

    -keystore <MY_KEYSTORE_FILENAME>

    替換 

    <MY_KEYSTORE_FILENAME>

     為路徑和你本地證書建立 

    .keystore 

    的檔案名。
  3. 送出建立的檔案為 

    certreq.csr

     到你希望進行授權的 CA。
    Confluence 6 通過 SSL 或 HTTPS 運作 - 建立或請求一個 SSL 證書
     請參考 CA 的文檔來找到如何進行這個操作。
  4. CA 将會發個你已經簽名好的證書。
  5. 導入新證書到你的本地的 keystore:

    keytool -importcert -alias tomcat -keystore <MY_KEYSTORE_FILENAME> -file <MY_CERTIFICATE_FILENAME>

    一些 CA 可能要求你在安裝你的證書之前先安裝一個中間人證書。你應該按照 CA  提供的文檔來完成你本地證書的成功安裝。

如果你使用的是 Verisign 或 GoDaddy,然後你收到了錯誤的資訊,你可能需要将 PKCS12 和你的私鑰(private key)同時導出。

  1. 首先,删除添加到 keystore 中的所有 key:

    keytool -delete -alias tomcat -keystore <MY_KEYSTORE_FILENAME>

  2. 然後導出為 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

  3. 然後導入 PKCS12 到 jks 中:

    keytool -importkeystore -deststorepass <MY_DESTINATIONSTORE_PASSWORD> -destkeypass <MY_DESTINATIONKEY_PASSWORD> -destkeystore <MY_KEYSTORE_FILENAME> -srckeystore <MY_PKC

https://www.cwiki.us/display/CONF6ZH/Running+Confluence+Over+SSL+or+HTTPS