如何使用证书签署ActiveX DLL

时间:2010-12-28 20:58:56

标签: c# activex certificate

我创建了一个我通过COM公开的DLL,我需要用证书签名。

我创建了一个Visual Studio 2008项目,它有一个包含ActiveX对象代码的类库。然后我创建了一个使用它的ASP.net页面:

<script type="text/javascript">
    var x = new ActiveXObject("Foo.Bar");

    x.SomeMethod();
</script>

我运行了该网站,并因安全性而遇到一堆错误。我运行regasm / tlb / codebase foo.dll并以这种方式安装它。我还在IE中更改了一堆安全设置,允许我运行未签名的ActiveX控件,一切正常。

现在我需要将其打包在CAB文件中并使用证书进行签名,这样我就不必触及安全设置(因此用户也不必这样做)。

有人能告诉我怎么做吗?我甚至不确定从哪里开始。我使用makecert.exe工具创建了一个自签名证书,但我不确定如何将证书绑定到DLL或如何将其打包在CAB中并在网站中使用它。

1 个答案:

答案 0 :(得分:4)

微软有一篇关于如何实现这一目标的白皮书/教程:

MSDN Article

以下是它的长短: 签署您的代码

  1. 从证书颁发机构申请证书。有关获取证书的说明,请参阅http://msdn.microsoft.com/workshop/security/authcode/certs.asp

  2. 获取用于签名文件和检查签名的最新工具。请参阅http://msdn.microsoft.com/library/default.asp?URL=/library/psdk/crypto/cryptotools_4739.htm

  3. 准备要签名的文件。如果要签署任何.exe,.ocx,.vbd或.dll文件,则无需执行任何特殊操作。如果要签署.cab文件,则必须将以下条目添加到.ddf文件并重新创建.cab文件:

    .Set ReservePerCabinetSize = 6144

  4. 使用signcode.exe对文件进行签名。以下是如何签署文件的示例:

    Signcode -prog myfilename -name displayname -info http://www.mycompany-inc-10.com - spc mycredentials.spc -pvk myprivatekey.pvk

  5. 测试您的签名:

    • 要测试已签名的.exe,.dll,.vbd或.ocx文件,请运行chktrust filename     其中filename是您签名文件的名称。
    • 要测试已签名的.cab文件,请运行chktrust -c cabfilename.cab     其中cabfilename是您签名的.cab文件的名称。
相关问题