只自动导入根证书,在原有那篇文章的基础上不需要做什么改动,直接读出根证书内容即可实现。
即自动导入根证书,又要自动导入个人证书,这种情况下,创建证书请求的工作要交给IE控件完成。
微软的ICEnroll接口中提供了createPKCS10,acceptPKCS7方法来创建证书,安装证书功能。 在ICEnroll3接口中提供了InstallPKCS7,可以使用它来安装根证书。
只自动导入根证书。
java 代码:
- <%
- StringTokenizer st = null;
- String line = null;
- // ------------------------------------------------------------- 返回CA证书内容 >>>
- String server_cert = "开始用openssl生成的根证书内容";
- if (StringUtils.isBlank(server_cert)) {
- throw new BusinessException("读取CA证书失败");
- }
- // 这里的这些操作,是为了生成vbscript中证书内容的变量定义
- String pkcs7ca = "sPKCS7ca=/"/" & vbcrlf/r/n";
- st = new StringTokenizer(server_cert, "/r/n");
- while (st.hasMoreTokens()) {
- line = st.nextToken();
- if (line.equals("/r/n"))
- continue;
- pkcs7ca += "sPKCS7ca=sPKCS7ca & /"" + line + "/" & vbcrlf/r/n";
- }
- %>
javascript代码:
- <OBJECT id=XEnroll classid=clsid:127698e4-e730-4e5c-a2b1-21490a70c8a1 codebase="xenroll.dll"></OBJECT>
- <script type="text/vbscript">
- ON ERROR resume next
- <%=pkcs7ca%>
- XEnroll.InstallPKCS7 sPKCS7ca
- If err.number = 438 then
- msgbox err.description & err.number
- Elseif err.number <> 0 then
- msgbox err.description & err.number
- Else
- msgbox "根证书安装成功"
- End If
- </script>
自动导入个人证书稍后做笔记,从支付宝中扣出来的(一小时只能申请一次数字证书:(),winxp,vista下处理方法不是一样,稍麻烦些。 个人证书要先用ICEnroll接口中方法生成证书请求,发送至服务端,服务端处理请求,生成签名证书,返回内容,客户端再安装。