免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1507 | 回复: 0
打印 上一主题 下一主题

在web上如何自动安装用户证书及根证书 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2005-12-23 18:55 |只看该作者 |倒序浏览

…… ……
[color="#000066"]来源:中国信息安全组织[原创]
作者:Rainbow(不经历风雨,怎么见彩虹)
/********************************************************************************************************************
声明:本文档用于学习与研究可以自由转载,无论以何种形式发布都必须保留完整的版权声明,商业用途不得转载.本人能力有限,如有问题欢迎交流与指正。
网站:http://www.infosecurity.org.cn
论坛:http://www.infosecurity.org.cn/forum/forum.html
邮件:rainbow_zrh@sina.com webmaster@infosecurity.org.cn
*********************************************************************************************************************/
[color="#003399"]一、证书的安装
    微软的xenroll中有一个接口acceptpkcs7提供了证书的安装功能。具体的参数如下:
HRESULT acceptPKCS7(BSTR PKCS7) 其中参数pkcs7就是经过base64编码的证书
如果要在web页中安装证书,过程如下:
[color="#ff3300"]1、初始化xenroll.dll
    在html代码中加入
     
     
[color="#ff3300"]2、读证书
    证书可以从LDAP或数据库中读取,这不是我们的主题,所以在这里略过。有关细节可以参看本站的LDAP等主题。
[color="#ff3300"]3、调用acceptPKCS7接口
    代码示例如下:
on error resume next
sPKCS7 = 你取到证书内容
err.clear
XEnroll.AcceptPkcs7(sPKCS7)
if err.Number  0 then
   if err.number = -2146885628 then
       MsgBox "系统中已经存在该证书,或证书不是在这台机器申请的"
   else
       MsgBox "证书下载时出错,错误号="&err.description
   end if
else
   MsgBox "证书已成功装入"
end if
说明:只有在本机生成的证书请求才可以这样安装证书。
[color="#003399"]二、根证书的安装
    微软的xenroll中的另外一个接口acceptpkcs7提供了根证书的安装功能。具体的参数如下:
[ c++]HRESULT InstallPKCS7(BSTR PKCS7)
[ vb ]Sub InstallPKCS7( ByVal PKCS7 As String )
其中参数pkcs7就是经过base64编码的根证书
如果要在web页中安装证书,过程和安装用户证书一样。
[color="#ff3300"]1、在asp如何自动下载并安装根证书
注://开头的为注解
ON ERROR resume next

XEnroll.InstallPKCS7 sPKCS7
If err.number = 438 then
    msgbox "install root certificate fail ."
Elseif err.number  0 then
    msgbox "install root certificate fail ."
Else
    msgbox "install root certificate success ."
End if
window.close()
其中do while...loop的目的就是想生成一段vbscript代码,生成的结果如下:
[color="#0000ff"]sPKCS7=""
sPKCS7=sPKCS7 & "-----BEGIN CERTIFICATE-----" & vbcrlf
sPKCS7=sPKCS7 & "MIICMjCCAZugAwIBAgIBATANBgkqhkiG9w0BAQUFADAUMRIwEAYDVQQKEwlIWWRy" & vbcrlf
sPKCS7=sPKCS7 & "b2luZm8wHhcNMDQwNDExMDczMzI0WhcNMzQwNDA0MDczMzI0WjAUMRIwEAYDVQQK" & vbcrlf
......
......
sPKCS7=sPKCS7 & "BQADgYEAjYHzQkIp1dE5zyPcrybDvpoT/MmMcZ3q7GANncp9Kq8b0Bj0It8kPPyN" & vbcrlf
sPKCS7=sPKCS7 & "JPit6rmgErPqPdj789Sr1H7/XjY+tuBJLV1idDPlqV44b3rBk/8GjYmTmLuDOYBI" & vbcrlf
sPKCS7=sPKCS7 & "XKqIEuO50QNJIdinCsCRyZ8h9O/VDTyMH4VUQsJ3YdZk2w3PrwU=" & vbcrlf
sPKCS7=sPKCS7 & "-----END CERTIFICATE-----" & vbcrlf
[color="#ff3300"]2、在php如何自动下载并安装根证书
首先也要取到证书,假如放在变量$cert中。
这样只需要将asp中生成sPKCS字符串部分替换成下面这段代码就可以了,生成的新内容在$newcert中。

[color="#003399"]三、installPKCS7与acceptPKCS7的不同
1、InstallPKCS7可以安装证书链
2、在ICEnroll3中第一次出现




本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/167/showart_63150.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP