簽署自訂或協力廠商功能及外掛程式,以進行安裝和更新
可建立及使用 Eclipse 外掛程式來延伸 Notes® 用戶端功能。功能及外掛程式會隨用戶端軟體一併提供。
執行這項作業的原因和時機
若要簡化安裝或部署,請簽署您的功能及外掛程式。
請使用取自憑證管理中心的程式碼簽署憑證來簽署新的功能及外掛程式,以準備安裝和更新。如果套件金鑰儲存庫含有程式碼簽署憑證,則只要功能已經簽署並正確位於安裝套件中,就可以進行安裝。如果程式碼簽署憑證不是受信任的檔案,則您可以修改安裝簽章驗證原則,容許安裝已簽署但不受信任的內容。
您可以使用安全原則文件的「金鑰及憑證」標籤上的「管理信任預設值」區段中的 Domino® 原則設定,將管理信任預設值抄寫到用戶端。請使用此原則選項來指定您特定的管理信任預設值,供 Notes® 安裝或升級期間,或用戶端外掛程式部署至現有的 Notes® 安裝環境時使用。
簽署您自訂或協力廠商的功能及外掛程式,會達成下列目的:
- 容許您控制原則設定,以判斷可以從容許的 Eclipse 更新網站下載哪些已簽署/未簽署的內容
- 可讓您將功能安裝成 Notes® 安裝或升級環境的一部分
- 避免提示使用者信任所部署的功能或外掛程式
- 容許您在安裝和更新時,使用 Domino® 管理原則或在安裝套件的 PLUGIN_CUSTOMIZATION.INI 檔案中設定喜好設定,來修改簽章驗證程式碼所使用的預設原則
- 根據管理設定,允許使用者依據憑證明細來執行信任決策
當您為 Notes® 安裝環境安裝新的自訂或協力廠商功能及外掛程式時,可以將自己的憑證新增至金鑰儲存庫,這樣在透過安裝套件進行安裝及更新時,才會信任已簽署的功能。您可以使用 Java™ Development Kit (JDK) 所包含的 JarSigner 工具,或是使用協力廠商工具(例如 Eclipse 中的 Plugin Development Environment (PDE)),來簽署功能及外掛程式。可以從許多大家熟知的憑證管理中心 (CA) 取得憑證。
系統會在安裝和更新供應期間,檢查功能是否受到信任。如果已安裝 Notes®,在執行時期供應期間會檢查這些功能。
- 安裝和更新供應
Notes® 安裝程式會從安裝套件的更新網站 UPDATESITE.ZIP 中安裝並初始供應新的或更新的功能。在這段初始供應期間,信任的基礎就在於 Notes® 安裝套件的 deploy 名錄中的 Java™ 金鑰儲存庫檔。Notes® 安裝期間,並沒有使用者介面負責進行信任提示;所有安裝功能都必須由信任的簽章者來簽署。
註: 當您執行 Notes® 用戶端套件安裝時,會將 Java™ 金鑰儲存庫複製到 notes\framework\rcp\部署\.keystore.JCEKS.IBM_J9_VM.安裝。此金鑰儲存庫包含安裝期間所用的 IBM® 程式碼簽署憑證。包括自訂或協力廠商的功能及外掛程式 JAR 檔在內,Notes® 安裝套件的更新網站 zip 檔 (updateSite.zip) 中的項目都必須經過簽署。供應處理程序會嘗試驗證簽章。這樣可讓管理員和使用者控制和驗證正在下載至用戶端的已簽署程式碼。
- 執行時期供應
如果 Notes® 在執行中,可由使用者或以程式設計方式,根據已排程的準則或其他供應機制(例如小組件供應程序使用的機制)來手動起始供應。在執行時期供應期間,Notes® 金鑰儲存庫與使用者個人名稱及通訊錄 (NAB) 的組合,將決定對所部署功能及外掛程式的信任。
註: 當您執行 Notes® 用戶端套件安裝時,會將 Java™ 金鑰儲存庫複製到 notes\framework\rcp\部署\.keystore.JCEKS.IBM_J9_VM.install(在 Mac OS X 平台上,則為 .keystore.JCEKS.Java_HotSpot_Client_VM.install)。此金鑰儲存庫包含安裝期間所用的 IBM® 程式碼簽署憑證。不過,在執行時期供應期間,Notes® 會使用位於使用者「聯絡人」應用程式 (names.nsf) 中的其他信任儲存庫。使用者之「聯絡人」應用程式的「進階/憑證」視圖包含相關憑證,將在執行時間供應期間用於決定信任。可以使用安全原則的「管理信任預設值」區段,或在使用者進行供應時藉由選取「安裝此外掛程式並將簽章者新增至我的信任簽章者清單」,將信任憑證複製到「聯絡人」應用程式的「進階/憑證」視圖。理想狀況下,您應該配置信任設定讓使用者永遠不會接收提示。將信任憑證抄寫至使用者的「聯絡人」應用程式(如果不喜歡使用原則,可改用 deploy.nsf),使部署的功能及外掛程式可在沒有信任提示的情形下完成安裝。註: 如需針對信任預設值而自訂安裝套件的相關資訊,請參閱相關主題。如果您已經以數位方式簽署要安裝或更新的功能,供應系統就會執行下列動作:
- 將關於不受信任之內容的錯誤顯示為安裝後摘要
- 提供一致的使用者介面,在執行時期供應期間,根據原則設定來處理受信任和不受信任的內容
- 請根據受管理原則設定來進行信任決策,這樣您就可以從伺服器覆寫預設配置和管理原則設定
如果您是以不同於 Notes® 安裝套件中的方式,對將要部署給使用者的功能及外掛程式進行簽署,請考慮下列事項:
- 使用「Domino® 管理員」設定 Notes® 用戶端要使用的預設簽章驗證原則。 註: Domino® 原則優先於安裝套件的 deploy\plugin_customization.ini 檔案中的設定。Domino® 原則不影響起始安裝。
」頁面,利用「
- 如果您是在 Notes® 用戶端上使用 deploy.nsf 來設定信任,Notes® 會在啟動時讀取該應用程式,以決定該作業階段的信任設定。不過,若已使用「安全原則」對話框的「金鑰及憑證」標籤來抄寫管理信任預設值,則會使用那些設定而忽略使用者的 deploy.nsf。
- 部署安裝套件或讓使用者能夠使用安裝套件,包括您在安裝套件的部署目錄中更新的金鑰儲存庫。
如需相關資訊,請參閱「使用原則或用戶端安裝套件來抄寫發證者及信任設定」。
簽署及新增功能至套件
執行這項作業的原因和時機
請使用此程序來簽署新的自訂或協力廠商功能及外掛程式 JAR 檔,並將功能新增至 Notes® 安裝套件。
此程序假設您已針對新自訂或協力廠商功能和外掛程式,建置或取得 JAR 檔,以用於 Eclipse 更新網站。使用 JRE 的 JarSigner 工具、Eclipse 或其他協力廠商工具。
程序
-
在您要安裝 Notes® 的機器上,設定 JAVA_HOME 名錄環境變數,以指向 keytool 所在的 JDK 資料夾。在下列範例指令行中,所需的 bin\keytool 將位於所指出的 JAVA_HOME 變數的目錄下。
set JAVA_HOME=C:\sign-plugin\abx\java\jdk1.5.0_05
-
建立金鑰儲存庫,並產生公用/私密金鑰組 EclipseFeaturesAlias,以及與該配對相關聯的自簽憑證。範例指令行如下所示:
%JAVA_HOME%\bin\keytool -genkey -dname "cn=Bob, ou=Sales, o=foo, c=US" -alias EclipseFeaturesAlias -keypass privatekeypassword -keystore C:\sign-plugin\abx\mykeystore -storepass keystorepassword -keyalg "RSA" -validity 360
-
顯示憑證/金鑰配對。範例指令行如下所示:
%JAVA_HOME%\bin\keytool -list -v -alias EclipseFeaturesAlias -keystore C:\sign-plugin\abx\mykeystore -storepass keystorepassword
-
針對您要新增至安裝套件的功能,使用自簽憑證/金鑰對組簽署其 updateSite JAR 檔案(在功能資料夾及外掛資料夾中)。用於簽署功能資料夾及外掛資料夾中之 JAR 檔案的範例指令行如下所示:
%JAVA_HOME%\bin\jarsigner -verbose -keystore C:\sign-plugin\abx\mykeystore -storepass keystorepassword -keypass privatekeypassword C:\sign-plugin\abx\mytestUpdatesite\features\com.ibm.sign.demo.feature_1.0.0.jar EclipseFeaturesAlias
%JAVA_HOME%\bin\jarsigner -verbose -keystore C:\sign-plugin\abx\mykeystore-storepass keystorepassword -keypass privatekeypassword C:\sign-plugin\abx\mytestUpdatesite\plugins\com.ibm.sign.demo_1.0.0.jar EclipseFeaturesAlias
-
更新 Notes® 安裝套件中的安裝資訊清單 (deploy\install.xml)。會顯示 Snippet(如需 installfeature 設定的說明,請參閱「對新的或協力廠商 Elclipse 功能自訂 Notes® 安裝資訊清單」)。
<?xml version="1.0" encoding="ISO-8859-1"?>
<ibm-portal-composite>
<domain-object name="com.ibm.rcp.installmanifest">
<object-data>
<install version="8.0.0.20081211.1925">
<!-- add this sample installfeature snippet to the end of the manifest,before the </install> line -->
<installfeature default="false" description="My hello world feature"id="test" name="Test" required="false" show="true" version="1.0.0">
<requirements>
<feature download-size="222"
id="com.ibm.sign.demo.feature" match="perfect" shared="true" size="199"url="jar:${installer.root}/updateSite.zip!/" version="1.0.0"/>
</requirements>
</installfeature>
<!-- end of addition -->
</install>
</object-data>
</domain-object>
</ibm-portal-composite>
註: 下列主題中也會說明此步驟:「自訂 Notes® 安裝套件以新增或移除 Eclipse 功能」和「使用提供的工具新增功能到 Notes® 安裝套件」。 -
將已簽署的功能新增至 Notes® 安裝套件。
-
匯出可認證您的公開金鑰的信任憑證。範例指令行如下所示:
%JAVA_HOME%\bin\keytool -export -alias EclipseFeaturesAlias -檔案 EclipseFeaturesAlias.cer -keystore C:\sign-plugin\abx\mykeystore -storepass keystorepassword
-
將匯出的信任憑證新增至 Notes® 安裝套件金鑰儲存庫,以便在安裝時啟用對公開金鑰的信任。範例指令行如下所示:
%JAVA_HOME%\bin\keytool.exe -import -keystore C:\sign-plugin\abx\AllClient.msi.w32\deploy\.keystore.JCEKS.IBM_J9_VM.install -storetype JCEKS -alias EclipseFeaturesAlias -file EclipseFeaturesAlias.cer -storepass ""
-
列出 Notes® 安裝套件金鑰儲存庫中的項目。範例指令行如下所示:
%JAVA_HOME%\bin\keytool.exe -list -v -keystore C:\sign-plugin\abx\AllClient.msi.w32\deploy\.keystore.JCEKS.IBM_J9_VM.install -storetype JCEKS -alias EclipseFeaturesAlias -storepass ""