SSL 憑證 說明

Java 代碼簽名: 生成一個 CSR

自 2014 年 1 月起,所有Web 瀏覽器上運行的 Java 應用程式,皆需要代碼簽名證書。 在您購買一個代碼簽名證書後,您必須簽署您的 Java 代碼。

打包與簽署 Java 需要數個工具,包含 keytool、jar 與 jarsigner。 自 JDK 5.0 開始,jarsigner 可以生成包含時間戳記的簽章,讓用戶得以驗證 JAR 檔案在代碼簽名證書仍有效時已被簽署。

方法 1 - 請求一個新的代碼簽名證書

  1. 若有必要,請從下列連結下載 JDK:
    http://java.sun.com/javase/downloads/index.jsp
  2. 向 GoDaddy 請求一個代碼簽名證書。
    • 建立一個新的密鑰儲存。 密鑰儲存為一個儲存了安全憑證的場所。 本例子將建立一個自訂的密鑰儲存,名為「codesignstore」,將僅被用於一個代碼簽名證書與已連結的隱私權密鑰。
      keytool -genkey -alias codesigncert -keypass -keyalg RSA -keysize 2048 -dname "CN=displayname,O=companyname,C=US,ST=state,L=city" -keystore codesignstore -storepass
    • 建立憑證簽名申請 (CSR)。 一組隱私權密鑰將被建立並儲存於命為「codesignstore」的密鑰儲存。 一個名為「mycsr.pem」的 CSR 檔案將在目前工作的目錄中建立。
      keytool -certreq -v -alias codesigncert -file mycsr.pem -keystore codesignstore
    • 購買一個代碼簽名證書
    • 在「我的帳戶」中點選已購買的代碼簽名證書。 此動作會將您導向至 GoDaddy 安全憑證服務帳戶管理網站應用程式。 CSR 生成方式必須在請求表單中設置為手動,好讓 CSR 欄位可見。
    • 將 CSR 當作代碼簽名請求的一部分提交
      • 在編輯器中開啟了「mycsr.pem」檔案之後,將整個檔案的內容(包含有 "BEGIN NEW CERTIFICATE REQUEST" 與 "END NEW CERTIFICATE REQUEST" 的數行文字)複製並貼到代碼簽名請求表單中的適當區域。
    • 您提供的公司資訊將被驗證。 註冊機構 (RA) 在需要時可能與您聯絡,請您提供額外資訊。
    • 一旦代碼簽名證書簽發後,您將會收到一封電郵訊息,其中包含一個可下載憑證檔案,以及任何相關中間憑證的連結。
  3. 將代碼簽名證書安裝於稍早建立的相同密鑰儲存。 下面的例子中,應將代碼簽名證書命名為「mycert.cer」。 而憑證檔案應置於目前的工作資料夾且為 PKCS#7 格式。
    keytool -import -trustcacerts -keystore codesignstore -storepass -alias codesigncert -file mycert.cer
  4. 以 jarsigner 簽署 JAR 檔案,使用代碼簽名證書與隱私權密鑰。
    jarsigner -verbose -keystore codesignstore -storepass -keypass myapp.jar codesigncert
    • 「codesignstore」為密鑰儲存的別名,密鑰儲存即代碼簽名證書、密鑰儲存與其他所有關連憑證放置的地方。
    • 尚未簽署的輸入檔案名稱為「myapp.jar」,且將被已簽署版本的檔案覆蓋。 使用「-signedjar」命令列選項,以便指定單獨輸入與輸出的檔案名稱。
    • 「codesigncert」為密鑰儲存中隱私權密鑰的別名。
    下列範例在與上述相同的範例中新增了時間戳記選項。
    jarsigner -verbose -keystore codesignstore -storepass -keypass -tsa http://tsa.starfieldtech.com/ myapp.jar codesigncert
  5. 驗證已簽名的 JAR 檔案
    jarsigner -verify -verbose -certs myapp.jar
  6. 分發代碼

方法 2 - 使用現有的 PKCS#12 檔案,包含代碼簽名證書和私人金鑰

  1. 若有必要,請從下列連結下載 JDK:
    http://java.sun.com/javase/downloads/index.jsp
  2. 驗證 PFX/P12 檔案可以和 jarsigner 一併使用。 執行以下命令,步驟 5 中所需的別名會顯示在輸出結果上方附近:
    keytool -list -storetype pkcs12 -keystore mycert.pfx -v
  3. 使用 jar 工具從 Java 類別檔案建立 JAR 檔案:
    jar cvf myapp.jar myapp.class
  4. 透過代碼簽名證書和私人金鑰使用 jarsigner 簽署 JAR 檔案:
    jarsigner -storetype pkcs12 -keystore mycert.pfx myapp.jar "aliasname"
    • "mycert.pfx" 是 PFX/P12 檔案的完整路徑,其中包含代碼簽名證書和私人金鑰。 檔案也應該包含所有中繼憑證。
    • "aliasname" 會在步驟 2 靠近上方的輸出結果中顯示。 如果 PFX/P12 檔案是從 Windows 中匯出,有效別名則為 GUID。
    • 提示出現時,請輸入與 PFX/P12 檔案中私人金鑰相關聯的密碼。 您也可以納入 "-storepass" 選項,以便指定命令列中的密碼。
    • 尚未簽署的輸入檔案名稱為「myapp.jar」,且將被已簽署版本的檔案覆蓋。 使用「-signedjar」命令列選項,以便指定單獨輸入與輸出的檔案名稱。
    下列範例在與上述相同的範例中新增了時間戳記選項。
    jarsigner -storetype pkcs12 -keystore mycert.pfx -tsa http://tsa.starfieldtech.com/ myapp.jar "aliasname"
  5. 驗證已簽名的 JAR 檔案
    jarsigner -verify -verbose -certs myapp.jar
  6. 分發代碼

連結


這篇文章有用嗎?
感謝您的意見回饋
很高興能幫上忙! 還有什麼可幫您的嗎?
很抱歉有這種情形。 我們如何能提供更多協助?