1.3 自行簽署的證書

附註:本節的資訊並不適用於 OES Linux,該系統同時安裝 Tomcat 和 Apache。OES Linux 文件包含有關取代自我簽署 Apache/Tomcat 證書的資訊。

獨立 iManager 安裝會包含暫時性的自我簽署證書,以供 Tomcat 使用。使用期限為一年。

此證書不能長期使用。這是可以讓系統暫時啟動並執行的解決方案,如此您才能夠立刻在安裝後安全地使用 iManager。除了用於測試之外,OpenSSL 不建議使用自行簽署證書。

取代自行簽署證書的挑戰在於,Tomcat 的預設 KeyStore 是在 Tomcat (JKS) 格式檔案中使用。用來修改此 KeyStore 的工具 keytool,無法輸入私密金鑰。它只能使用自我產生的金鑰。

如果您使用的是 eDirectory,就可以使用 Novell Certificate Server 來安全地產生、追蹤、儲存並撤銷證書,而不需要再使用其他工具。若要使用 Novell Certificate Server 在 eDirectory 中產生公用/私密金鑰組,請針對您的適用平台完成下列步驟:

1.3.1 Linux

下列指示說明如何在 Linux 平台上的 eDirectory 中建立金鑰組,並透過 PKCS#12 檔案輸出公用金鑰、私密金鑰和根證書管理中心 (CA) 金鑰。這包括修改 Tomcat 的 server.xml 組態檔案,以便使用 PKCS12 指令並將組態指向實際的 P12 檔案,而非使用預設的 JKS KeyStore。

此程序使用下列檔案:

  • 暫存金鑰組存放在 /var/opt/novell/novlwww/.keystore 檔案中。

  • 可信的根則包含在 /opt/novell/jdk1.7.0_25/jre/lib/security/cacerts 檔案中。

  • 用來設定 Tomcat 證書使用的檔案是 /etc/opt/novell/tomcat7/server.xml。

程序

  1. 使用 iManager 建立新的伺服器證書。

    在 iManager 中,選取「Novell Certificate Server」>「建立伺服器證書」。選取適當伺服器,指定綽號並接受其餘的證書預設值。

  2. 將伺服器證書輸出到 Tomcat 主目錄 (/var/opt/novell/novlwww)。在 iManager 中,選取「目錄管理」>「修改物件」。瀏覽並選取 Key Material Object (KMO) 物件。在「證書」索引標籤中,選取「輸出」。指定密碼並將伺服器證書儲存為 PKCS#12 (.pfx)。

  3. 將 .pfx 檔案轉換成 .pem 檔案。

    為了此目的,請使用類似下列內容的指令:

    openssl pkcs12 -in newtomcert.pfx -out newtomcert.pem
    

    指定您已在步驟 2中所指定的證書密碼,然後為新的 .pem 檔案指定密碼。如果您想使用相同密碼也可以。

  4. 將 .pem 檔案轉換成 .p12 檔案。

    為了此目的,請使用類似下列內容的指令:

    openssl pkcs12 -export -in newtomcert.pem -out newtomcert.p12 -name "New Tomcat"
    

    指定您已在步驟 3中所指定的證書密碼,然後為新的 .p12 檔案指定密碼。如果您想使用相同密碼也可以。

  5. 輸入下列指令停止 Tomcat:

    /etc/init.d/novell-tomcat7 stop
    
  6. 編輯 Tomcat 組態檔案 ( /etc/opt/novell/tomcat7.0.42/server.xml) 並新增 keystoreType、keystoreFile 和 keystorePass 變數,讓 Tomcat 可以使用新建立的 .p12 證書檔案。例如:

    <Connector className="org.apache.coyote.tomcat7.CoyoteConnector"
     port="8443" minProcessors="5" maxProcessors="75" enableLookups="true"
     acceptCount="100" debug="0" scheme="https" secure="true"
     useURIValidationHack="false" disableUploadTimeout="true">
       <Factory className="org.apache.coyote.tomcat7.CoyoteServerSocketFactory"
     clientAuth="false" protocol="TLS" keystoreType="PKCS12"
     keystoreFile="/var/opt/novell/novlwww/newtomcert.p12" keystorePass="password" />
    </Connector>
    

    附註:將 KeyStore 類型設為 PKCS12 時,您必須指定證書檔案的完整路徑,因為 Tomcat 將不再預設使用 Tomcat 主目錄路徑。

  7. 將 .p12 檔案的所有權變更成適當的 Tomcat 使用者/群組 (通常是 novlwww),然後將檔案權限設為 user=rw、group=rw 和 others=r。例如:

    chown novlwww:novlwww newtomcert.p12
    
    chmod 654 newtomcert.p12
    
  8. 輸入下列指令重新啟動 Tomcat:

    /etc/init.d/novell-tomcat7 start
    

1.3.2 Windows

下列指示說明如何在 Windows 平台上的 eDirectory 中建立金鑰組,並透過 PKCS#12 檔案輸出公用金鑰、私密金鑰和根證書權限 (CA) 金鑰。這包括修改 Tomcat 的 server.xml 組態檔案,以便使用 PKCS12 指令並將組態指向實際的 P12 檔案,而非使用預設的 JKS KeyStore。

與此程序關聯的檔案及其預設位置如下:

  • 暫存金鑰組:C:\Program Files\Novell\Tomcat\conf\ssl\.keystore。

  • 託管根部證書:C:\Program Files\Novell\jre\lib\security\cacerts。

  • 設定 Tomcat 的證書使用:C:\Program Files\Novell\Tomcat\conf\server.xml

程序

  1. 使用 iManager 建立新的伺服器證書。

    在 iManager 中,選取「Novell Certificate Server」>「建立伺服器證書」。選取適當伺服器,指定綽號並接受其餘的證書預設值。

  2. 輸出伺服器證書。在 iManager 中,選取「目錄管理」>「修改物件」。瀏覽至 KMO 物件並選取它。在「證書」索引標籤中,選取「輸出」。指定密碼並將伺服器證書儲存為 PKCS#12 (.pfx)。

  3. 將 .pfx 檔案轉換成 .pem 檔案。

    附註:依據預設,Windows 上不會安裝 OpenSSL,不過 OpenSSL 網站上有提供適用於 Windows 平台的版本。此外,您可以轉換 Linux 平台上的證書,而該平台預設已安裝 OpenSSL。

    為了此目的,請使用類似下列內容的指令:

    openssl pkcs12 -in newtomcert.pfx -out newtomcert.pem
    

    從步驟 2指定證書密碼,然後為新的 .pem 檔案指定密碼。如果您想使用相同密碼也可以。

  4. 將 .pem 檔案轉換成 .p12 檔案。

    為了此目的,請使用類似下列內容的指令:

    openssl pkcs12 -export -in newtomcert.pem -out newtomcert.p12 -name "New Tomcat"
    

    從步驟 3指定證書密碼,然後為新的 .p12 檔案指定密碼。如果您想使用相同密碼也可以。

  5. 將 .p12 檔案複製到 Tomcat 證書的位置。

    依據預設,此位置是 C:\Program Files\Novell\Tomcat\conf\ssl\。

  6. 停止 Tomcat 服務。

    /etc/init.d/novell-tomcat7 stop
    
  7. 編輯 Tomcat 的 server.xml 並新增 keystoreType、keystoreFile 和 keystorePass 變數,讓 Tomcat 可以使用新建立的 .p12 證書檔案。例如:

    <Connector className="org.apache.coyote.tomcat7.CoyoteConnector"
     port="8443" minProcessors="5" maxProcessors="75" enableLookups="true"
     acceptCount="100" debug="0" scheme="https" secure="true"
     useURIValidationHack="false" disableUploadTimeout="true">
       <Factory className="org.apache.coyote.tomcat7.CoyoteServerSocketFactory"
     clientAuth="false" protocol="TLS" keystoreType="PKCS12"
     keystoreFile="/conf/ssl/newtomcert.p12" keystorePass="password" />
    

    將 KeyStore 類型設為 PKCS12 時,您必須指定證書檔案的完整路徑,因為 Tomcat 將不再預設使用 Tomcat 主目錄路徑。

  8. 啟動 Tomcat 服務。