如何向应用程序添加证书
本主题说明如何使用命令行向 BizTalk Server 应用程序添加证书。 此选项在 BizTalk Server 管理控制台中不可用。 您向某一 BizTalk 应用程序添加证书,以便可以将证书从一个 BizTalk 组传输到另一个组中,与应用程序打包在一起。 您使用证书来验证凭据并为发送端口和接收位置建立安全的链接。 有关详细信息,请参阅 如何将证书分配给发送端口 和 如何将证书分配到接收位置。
向应用程序中添加证书时,请切记以下几点:
在将某一证书添加到应用程序时,该证书将作为证书项目添加到 BizTalk 管理数据库中。 在您安装该应用程序时,该证书将导入到本地计算机上的“其他人”证书存储中;因此,在您将证书分配给某一发送端口或接收位置前,可能无需执行额外的步骤来将证书导入到此证书存储中。 在您使用 BTSTask 来添加证书时,该证书必须存在于“其他人”证书存储中,并且必须指定其指纹。
注意
在导出某一证书时,私钥将被删除。 在安装应用程序时,尽管证书将导入证书存储中,但它不能用于解密已加密的消息,虽然它可用于发送已加密的消息。 如果您出于前述目的需要使用证书,则应在使用该证书的发送端口的宿主计算机上,在“其他人”证书存储中重新安装该证书。
作为一种最佳实践,如果某个证书将由两个或多个应用程序中的发送端口或接收位置使用,应将该证书部署在一个单独的应用程序中,然后从需要使用该证书的应用程序中引用该应用程序。 这是因为 BizTalk 组中只能有一个证书具有特定的指纹,因此您不能将同一个证书导入到两个不同的应用程序中。 如果尝试导入两个使用同一证书的应用程序,则第一个导入将会成功,而第二个导入将会失败。 在这种情况下,使用“覆盖”导入选项并不能解决问题,因为您要覆盖的现有证书包含在另一个应用程序中。
必备条件
若要执行本主题中的过程,必须使用属于 BizTalk Server 管理员组成员的帐户登录。 有关权限的更多详细信息,请参阅 部署和管理 BizTalk 应用程序所需的权限。
向应用程序添加证书
按如下所示打开命令提示符:单击“ 开始”,单击“ 运行”,键入
cmd
,然后单击“ 确定”。键入以下命令,替换相应的值,如下表所述:
BTSTask AddResource [/ApplicationName:value] /Type:System.BizTalk:Certificate [/Overwrite] /Thumbprint:“value” [/Server:value] [/Database:value]
例如:
BTSTask AddResource /ApplicationName:MyApplication /Type:System.BizTalk:Certificate /Overwrite /Thumbprint:"04 a2 8e 32 24 f9 36 b9 42 81 12 71 3a d2 ef db c7 9c 83 dc" /Server:MyDatabaseServer /Database:BizTalkMgmtDb
参数 值 /ApplicationName 向其添加证书的 BizTalk 应用程序的名称。 如果未指定应用程序名称,则使用组的默认 BizTalk 应用程序。 如果名称包含空格,则必须用双引号将其括起来 (“) 。 /类型 System.BizTalk:Certificate (此值不区分大小写。) /覆盖 更新现有证书的选项。 如果未指定,且应用程序中已存在与要添加的证书具有相同 Thumbprint 属性的证书,则 Add 操作将失败。 可以通过双击“证书”管理单元中的证书并单击“详细信息”选项卡来查看指纹属性。有关详细信息,请参阅证书管理单元文档中的“查看证书信息”。 /指纹 证书的指纹属性 (指纹 是数据) 摘要。 此值必须放在双引号 (") 中。 /服务器 BizTalk 管理数据库的宿主 SQL Server 实例的名称,格式为“服务器名称\实例名称,端口”。
只在实例名称与服务器名称不相同时才需要指定实例名称。 只在 SQL Server 不使用默认端口号 (1433) 时才需要指定端口。
示例:
Server=MyServer
Server=MyServer\MySQLServer,1533
如果未提供,则使用本地计算机上运行的 SQL Server 实例的名称。/数据库 BizTalk 管理数据库的名称。 如果未指定,则使用在本地 SQL Server 实例中运行的 BizTalk 管理数据库。