OCX控件数字签名图文教程[通俗易懂]

OCX控件数字签名图文教程[通俗易懂]这段时间做了一个B/S下套打的控件(过几天整理一下放到博客上来),控件测试完成,但是因为没有数字证书,IE如果不设置信任区域和等级的话,会直接被阻止下载安装(我不期望客户能熟练地改IE设置),但是数字证书价格昂贵,暂不考虑,看到cnblogs上一篇文章后深受启发,照着搞了一个测试用的数字签名,但是这篇文章上的OS貌似是win2000,IE5,我有必要在win7下给大家做个演示:首先,下载

大家好,又见面了,我是你们的朋友全栈君。

这段时间做了一个B/S下套打的控件(过几天整理一下放到博客上来),控件测试完成,但是因为没有数字证书,IE如果不设置信任区域和等级的话,会直接被阻止下载安装(我不期望客户能熟练地改IE设置),但是数字证书价格昂贵,暂不考虑,看到cnblogs上一篇文章后深受启发,照着搞了一个测试用的数字签名,但是这篇文章上的OS貌似是win 2000,IE5,我有必要在win7下给大家做个演示:

首先,下载工具包:signtool.rar ,解压(最好是根目录,方便后边敲路径),我的路径是E:\delphi\signtool\

OCX控件数字签名图文教程[通俗易懂]

然后在cmd下或者“运行”中输入:
E:\delphi\SignTool\makecert -sv printocx.pvk -r -n "CN=KeHong Company" printocx.cer

OCX控件数字签名图文教程[通俗易懂]

这里的printocx.pvk是我新创建的私人密钥;CN=KeHong Company是持有人或者颁发者,你可以CN=XX公司;最后的printocx.cer则是新建的证书。

根据提示在弹出的窗口输入私钥密码(因为做这个证书的目的并不是为了安全,所以密码建议设成123456之类好记的):

OCX控件数字签名图文教程[通俗易懂]OCX控件数字签名图文教程[通俗易懂]

执行结束后,在目录下会生成两个文件:printocx.pvk、printocx.cer。

OCX控件数字签名图文教程[通俗易懂]

证书的制作就是这么简单,下面我们来对自己做的ocx控件签名(我的控件是print.cab),双击目录里的signcode.exe文件,出现了数字签名向导:

OCX控件数字签名图文教程[通俗易懂]

选择你做的控件:

OCX控件数字签名图文教程[通俗易懂]

下一步,签名选项选“自定义”,下一步,选择证书,点击“从文件选择”,这里要把默认类型换成X.509证书:

OCX控件数字签名图文教程[通俗易懂]

下一步,选择私钥,即刚才生成的printocx.pvk文件:

OCX控件数字签名图文教程[通俗易懂]

会提示输入密码,即上面你设置的密码,比如之前我建议你设的123456,下一步,算法选择sha1即可:

OCX控件数字签名图文教程[通俗易懂]

下一步,默认不用管:

OCX控件数字签名图文教程[通俗易懂]

下一步,数据描述,这里要认真写一下了,最后客户的IE浏览器提示的文件描述就是这里所填的:

OCX控件数字签名图文教程[通俗易懂]

下一步,时间戳也不用理会,直接下一步完成,最后会再次提示输入私钥,输入你设置的密码123456,确定,即提示“数字签名向导已完成”。

OCX控件数字签名图文教程[通俗易懂]

是不是全部搞定了呢?先别激动,看下你的ocx页面:

OCX控件数字签名图文教程[通俗易懂]

提示,右键选择安装,(win7或vista的系统还会提示一下是否允许更改,确定就是了),然后就会弹出这样的提示框:

OCX控件数字签名图文教程[通俗易懂]

可见,仍然被直接阻止,而且之前设置的颁布者、提示信息都没有显示,很显然,我们的工作还没有完成。接下来,我们需要把数字证书(cer文件)安装到根系统存储区,“运行”执行如下命令:

E:\delphi\SignTool\certmgr -add -c printocx.cer -s root

会有这样的一个提示,确定即可:

OCX控件数字签名图文教程[通俗易懂]

我们再来看看,打开页面后,提示已经可以显示出颁布者和软件内容说明了:

OCX控件数字签名图文教程[通俗易懂]

右键选择“为此计算机上所有用户安装此加载项”后,就出弹出这样的一个提示框,询问是否运行更改计算机,而且很清楚地显示了颁布者和软件名称,点击查看证书,证书状态也正常,这里直接点击“是”安装即可,IE不再阻止(最后的提示是遮罩层提示,没法截图,用手机拍的)。

OCX控件数字签名图文教程[通俗易懂]

就此,OCX控件数字签名讲解完毕,当然还有一些需要考虑的:总不至于让用户执行安装证书的指令吧?!

这个问题也只能这样解决:做一个批处理,把certmgr -add -c printocx.cer -s root写到批处理中,把certmgr.exe和cer证书放到同目录,让用户在使用你的B/S系统之前执行这个批处理即可。我们前面所说的所有内容,都是基于买不起付费数字证书的基础上,如果你们公司愿意买数字证书的话,那是最好不过的,否则只能用这样的笨办法给用户最简单的体验。当然,你能说动让用户修改IE设置和安全级别的话,我也无话可说,此文仅供参考学习。

花絮:忘记说一件事,还有一种免费而且不用安装证书的妙招呢,如果你有不用的支付宝电子证书,用这个方法做成签名证书,用户访问页面的时候,直接就提示信息以及询问是否安装,而不直接阻止!当然,你的支付宝账户最好是没用的,以免你的密码被别有用心的人通过签名证书激活成功教程,造成经济损失。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/158456.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • fec什么意思_QQ浏览器怎么使用WebRTC

    fec什么意思_QQ浏览器怎么使用WebRTCWebRTC::FEC目录WebRTC::FEC ULPFEC FLEXFEC Encodeulpfec Decodeulpfec 动态FEC冗余度 FlexFECinWebRTC WebRTC::FECTags:WebRTCFECWebRTC中的FEC实现分为UlpFEC和FlexFEC ulpfec:rfc5109 …

    2022年8月11日
    4
  • 如何利用Javascript发送GET/POST请求「建议收藏」

    如何利用Javascript发送GET/POST请求「建议收藏」如何利用Javascript发送GET/POST请求最近在做基于TWS的分析系统,因为采用Flask+Java的技术架构方案,所以需要开发Web,然而我自己没有做过类似的开发,所以很多工作是从头开始学着做的。因此,在实现表单数据提交的时候,当时就想到个问题,如果一个页面里内容足够多的话,仅用form提交的话,后台就需要做非常复杂的判断,以此确认用户提交的是哪类数据,这样工程不仅难看,而且低效。于是咨

    2022年5月17日
    30
  • NP-Hard问题浅谈

    NP-Hard问题浅谈看相关算法的paper的时候,经常会出现NP-Hard这个词。本博主也不是纯数学系出身,对于这么高深的问题自然没有特别深入独到的理解。但是本博主的习惯就是看到一个东西老在眼前晃来晃去但自己还不是很明白,就有强迫症一定要搞明白这到底是个什么玩意。so,咱们就来看看这个NP-Hard问题,怎么用最简单的方式去了解。1.世界七大数学难题之首2000年,美国克莱数学研究所公布了世界七大数学难题,又称千禧年大

    2022年9月13日
    0
  • vscode 快捷键绑定

    vscode 快捷键绑定最近迷上了vscode,用它开发.netcore程序十分方便,智能提示也很好用,插入智能提示的选项是enter键或者tab键,可惜我以前习惯使用vs写c#,习惯用空格做智能提示的选择,多方查找资料甚至准备采用开发一个vscode插件的方式解决,后来无意间查看官方文档,利用vscode的快捷键绑定功能是可以做到的。打开vscode,进入文件->首选项->键盘快捷方式查看’tab’的功能,其中就有一项:

    2022年5月18日
    39
  • Redis安装与使用[通俗易懂]

    Redis安装与使用

    2022年2月13日
    37
  • JQuery时间戳与时间字符串的转换「建议收藏」

    JQuery时间戳与时间字符串的转换「建议收藏」JS时间戳转字符串:varformatlistdate=function(time){vardate=newDate(time);vary=date.getFullYear();varm=date.getMonth()+1;vard=date.getDate();varhour=date.get…

    2022年5月23日
    69

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号