在应用程序的CAB文件中部署自己的证书
在应用程序的CAB文件中部署自己的证书
引言
在我的第一篇文章(签名代码)中,我们创建了一个证书,用于安装在设备上并对我们的应用程序进行签名,以便以受信任的方式运行它们。
在本文中,我们将了解如何将我们的证书部署到应用程序的cab文件中,这样用户就不需要手动安装证书了。
步骤 1 - 签名文件
第一步是对我们的.exe文件、.dll文件和其他应用程序文件进行签名。为此,我们可以使用我们的RDA或使用实用程序signtool.exe
signtool.exe sign /f MyCert.pfx *.exe *.dll *.cpl [....and so on]
步骤 2 - 将我们的证书包含在cab中
在第一篇文章中,我们创建了_setup.xml,其中包含 wap-provisioningdoc 格式的证书。
现在,我们将创建_setup.xml的副本,并将其重命名为Pre_MyCert.xml。
我们将删除<?xml version="1.0" encoding="utf-8" ?>
和<wap-provisioningdoc>
标签。
结果将是。
<characteristic type="CertificateStore">
<characteristic type="Privileged Execution Trust Authorities">
<characteristic type="2bd9dd0aadf266f9810a1210a2052144bf2e3f22">
<parm name="EncodedCertificate"
value="MIIB8jCCAVugAwIBAgIQztL5fI8kyrFE9be6IfYcXTANBgkqhkiG9w0BAQQFADAS
MRAwDgYDVQQDEwdDcmlTb2Z0MCAXDTk5MTIzMTIzMDAwMFoYDzIwOTgxMjMxMjMw
MDAwWjASMRAwDgYDVQQDEwdDcmlTb2Z0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
iQKBgQDSNfTSjNJy4zZKi9wen/9CLt1cwWcYIaIp4xIuDd9VIXy3hBj+FpL11E9d
O7Sa5FXcIo8P9WttLHkd9TS8GXUEJShU+b/JtPDQ3EvpuJcSpo0CEuAI3fr7+LpI
VtfZto+lA8/8Ch7cssZQqPaNClIP2+9DrR5l7t5XvCGLltfrcQIDAQABo0cwRTBD
BgNVHQEEPDA6gBDsxeAuaLF3Ax+fxz0bWdqvoRQwEjEQMA4GA1UEAxMHQ3JpU29m
dIIQztL5fI8kyrFE9be6IfYcXTANBgkqhkiG9w0BAQQFAAOBgQC2Tsg8FhGLhCgT
IxKEErFzZw1bNxrnxAjao3hkA2jtv3jGkejWMnnBODogUPbwnkxRTlmKEjBhFilt
P4c4djE4cDApXpnj26R7eX6PmhPmvJHRJP4JM8WEzq/saWyCBEyfhslSSKCVQeNS
SJZ6//5FFqAJIQZ8DklQpSP6mIG3mw==" />
</characteristic>
</characteristic>
</characteristic>
<characteristic type="CertificateStore">
<characteristic type="SPC">
<characteristic type="2bd9dd0aadf266f9810a1210a2052144bf2e3f22">
<parm name="EncodedCertificate"
value="MIIB8jCCAVugAwIBAgIQztL5fI8kyrFE9be6IfYcXTANBgkqhkiG9w0BAQQFADAS
MRAwDgYDVQQDEwdDcmlTb2Z0MCAXDTk5MTIzMTIzMDAwMFoYDzIwOTgxMjMxMjMw
MDAwWjASMRAwDgYDVQQDEwdDcmlTb2Z0MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB
iQKBgQDSNfTSjNJy4zZKi9wen/9CLt1cwWcYIaIp4xIuDd9VIXy3hBj+FpL11E9d
O7Sa5FXcIo8P9WttLHkd9TS8GXUEJShU+b/JtPDQ3EvpuJcSpo0CEuAI3fr7+LpI
VtfZto+lA8/8Ch7cssZQqPaNClIP2+9DrR5l7t5XvCGLltfrcQIDAQABo0cwRTBD
BgNVHQEEPDA6gBDsxeAuaLF3Ax+fxz0bWdqvoRQwEjEQMA4GA1UEAxMHQ3JpU29m
dIIQztL5fI8kyrFE9be6IfYcXTANBgkqhkiG9w0BAQQFAAOBgQC2Tsg8FhGLhCgT
IxKEErFzZw1bNxrnxAjao3hkA2jtv3jGkejWMnnBODogUPbwnkxRTlmKEjBhFilt
P4c4djE4cDApXpnj26R7eX6PmhPmvJHRJP4JM8WEzq/saWyCBEyfhslSSKCVQeNS
SJZ6//5FFqAJIQZ8DklQpSP6mIG3mw==" />
<parm name="Role" value="222" />
</characteristic>
</characteristic>
</characteristic>
步骤 3 - 创建 Cab
好的,现在我们有了 XML 文件和签名的应用程序文件,所以我们可以使用以下简单的命令行构建我们的 cab 文件
CabWiz.exe MyApp.inf /prexml PreXML_MyCert.xml" /err Error_MyApp.log /cpu ARM
完成了!输出将是我们的 cab 文件,其中包含我们的应用程序和我们的证书,可以安装到设备上。
有关创建 cab 的.inf文件,请查看 MSDN 库。
相关链接
历史
- 20/12/2005 - 初始文章