对定制或第三方功能部件和插件签名以进行安装和更新
可以创建和使用 Eclipse 插件以扩展 Notes® 客户机功能。功能部件与插件使用客户机软件进行设置。
关于此任务
要简化安装或部署, 请为功能部件和插件签名。
使用从认证中心获取的代码签名证书,为新的功能部件和插件签名,以准备用于安装和更新。签署功能部件且将其正确置于安装工具包中后,如果代码签署证书包含在工具包密钥存储中,那么可以安装这些功能部件。如果代码签名证书不是可信文件,可以修改安装签名验证策略,允许安装已签名但不可信的内容。
可以使用安全策略文档的密钥和证书选项卡上的管理信任缺省值部分中的 Domino® 策略设置,将管理信任缺省值推送到客户机。使用此策略选项指定特定管理信任缺省值,可用于 Notes® 安装或升级期间,也可用于将客户机插件部署到现有 Notes® 安装期间。
要对定制或第三方功能部件和插件进行签名,请完成以下步骤:
- 允许规定策略设置,从而确定可以从允许的 Eclipse 更新站点下载哪些种类的已签名/未签名内容
- 作为 Notes® 安装或升级的组成部分进行安装功能部件。
- 避免提示用户信任部署功能部件或插件
- 通过使用 Domino® 管理策略或设置安装工具包中 PLUGIN_CUSTOMIZATION.INI 文件的首选项,可以修改安装和更新时签名验证代码使用的缺省策略
- 基于管理员设置,允许用户根据证书详细情况做出信任决定
为 Notes® 安装安装新的定制或第三方部件和插件时,可以向密钥库添加自己的证书,从而使签署的功能部件在从安装工具包中安装和更新过程中将受到信任。可以使用 Java™ 开发工具包 (JDK) 中随附的 JarSigner 工具或第三方工具(如 Eclipse 中的插件开发环境 (PDE))对功能部件和插件进行签名。可以从很多著名认证中心 (CA) 获取证书。
在安装和更新设置中检查是否信任这些功能部件。如果已安装 Notes®,将在运行时供应期间检查功能部件。
- 安装和更新设置
Notes® 安装程序将从安装工具包的更新站点 UPDATESITE.ZIP 安装并出示供应新的或更新的功能部件。在此初始供应期间,证书基于 Notes® 安装工具包的 deploy 目录中的 Java™ 密钥库文件。Notes® 安装时没有针对信任提示的用户界面,所有安装功能部件必须由信任签署者签名。
注: 运行 Notes® 客户机工具包安装时,将 Java™ 密钥库复制到 notes\framework\rcp\deploy\.keystore.JCEKS.IBM_J9_VM.install。此密钥库包含安装时使用的 IBM® 代码签名证书。Notes® 安装工具包的更新站点 zip 文件 (updateSite.zip) 的各项必须经过签名,包括定制或第三方功能部件和插件 JAR 文件。设置过程旨在验证签名。这使得管理员和用户可以控制并验证正下载到客户机的已签名的代码。
- 运行时供应
如果 Notes® 正在运行,那么供应可以由用户手动启动或基于调度条件或其他供应机制(例如窗口小部件供应过程使用的供应机制)有计划地启动。运行时设置时,Notes® 密钥库与用户个人的名称和地址薄 (NAB) 的组合确定信任这些正在部署的功能部件与插件。
注: 运行 Notes® 客户机工具包安装时,将 Java™ 密钥库复制到 notes\framework\rcp\deploy\.keystore.JCEKS.IBM_J9_VM.install(在 Mac OS X 平台上,则是 .keystore.JCEKS.Java_HotSpot_Client_VM.install)。此密钥库包含安装时使用的 IBM® 代码签名证书。但是,在运行时供应期间,Notes® 使用用户的联系人应用程序 (names.nsf) 中的其他信任库。用户的联系人应用程序的“高级/证书”视图包含运行时供应期间使用的确定信任的证书。可以使用安全策略的“管理信任缺省值”部分将信任证书复制到联系人应用程序的“高级/证书”视图,或者用户在设置时可以选择安装此插件并将签名者添加到我的受信任签名者列表。理想情况下,应配置信任设置使用户从不接收信任提示。可以使用策略,若不喜欢也可使用其他 deploy.nsf 将信任证书推到用户的联系人应用程序,以便不用信任提示进行部署功能部件和插件的安装。注: 请参阅相关主题,以了解有关针对信任缺省值来定制安装工具包的信息。如果已经对要安装或更新的功能部件进行了数字签名,供应系统将执行以下操作:
- 将有关不可信内容的错误显示为安装后摘要
- 基于策略设置在运行时供应期间提供一致的用户界面,用于处理可信和不可信的内容
- 根据管理策略设置做出信任决定,以便您可以从服务器覆盖缺省设置和管理策略设置
如果要使用 Notes® 安装工具包之外的方式为将部署到用户的功能部件和插件签名,请考虑以下方式:
- 使用 Domino® Administrator,通过 页面设置 Notes® 客户机使用的缺省签名验证策略。 注: Domino® 策略优先于安装工具包 deploy\plugin_customization.ini 文件中的设置。Domino® 策略不会影响初始安装。
- 如果要使用 Notes® 客户机上的 deploy.nsf 设置信任,Notes® 将读出启动时的应用程序,为会话确定信任设置。但是,如果使用“安全策略”对话框上的“密钥和证书”选项卡上推送管理信任缺省值,则将使用那些设置并忽略用户的 deploy.nsf。
- 部署或使用户能够使用安装工具包,包括在安装工具包的 depoly 目录中已更新的密钥存储。
有关更多信息,请参阅使用策略或客户机安装工具包推送证明者和信任设置。
对新功能部件签名和向安装工具包添加新功能部件
关于此任务
使用此步骤为新的定制或第三方功能部件和插件 JAR 文件签名,并将功能部件添加到 Notes® 安装工具包。
此步骤假定已构建或获取在 Eclipse 更新站点使用的新的定制或第三方功能部件和插件 JAR 文件。使用 JRE 的 JarSigner 工具、Eclipse 或其他第三方工具。
过程
- 将 JAVA_HOME 目录环境设置为变量,在安装 Notes® 的机器上指向 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)。代码片段如下所示(有关 installfeature 设置的描述,请参阅“为新功能部件或第三方 Eclipse 功能部件定制 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 -file 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 ""