since.2006  

上一篇日志中介绍了tomcat+openssl实现双向认证,但第6步需要用户手工将个人证书及根证书手工导入到IE中去。这里介绍一种自动导入根证书到IE中去的方法。
  • 只自动导入根证书,在原有那篇文章的基础上不需要做什么改动,直接读出根证书内容即可实现。
  • 即自动导入根证书,又要自动导入个人证书,这种情况下,创建证书请求的工作要交给IE控件完成。
微软的ICEnroll接口中提供了createPKCS10acceptPKCS7方法来创建证书,安装证书功能。在ICEnroll3接口中提供了InstallPKCS7,可以使用它来安装根证书。

只自动导入根证书。

<%    
    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";    
    }    
%>    
   
<OBJECT id=XEnroll codeBase=xenroll.dll classid=clsid:127698e4-e730-4e5c-a2b1-21490a70c8a1></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>  
Posted by hee at 07:09 AM | Permalink | 评论(0)