NJ CA钥匙盘 读取方式

NJ CA钥匙盘 读取方式客户端 function certLogin var pwd document getElementBy certPwd value 获取页面用户输入的证书密码 if pwd replace g alert 证书密码不能为空

大家好,我是讯享网,很高兴认识大家。
 //客户端 function certLogin() { var pwd = document.getElementById("certPwd").value; //获取页面用户输入的证书密码 if(pwd.replace(/[ ]/g,"")==""){ alert("证书密码不能为空,请输入有效的密码!"); return false; } try{ NJCA.ClearPasswd();//清除证书缓存密码 rs = NJCA.setPasswd('P11', pwd, 1); //除pwd为用户输入,其它参数固定不变 }catch(e){ //上面函数执行异常,原因都是没有加载到安徽CA证书驱动导致 alert('控件初始化失败,请确认CA驱动是否安装正确!'); return false; } if(!rs) { //未插KEY或证书密码不对会有如下提示 var errorMsg = NJCA.GetLastErrorInfo(0);//获取错误详情 errorMsg += '\n请确认CA的UKEY是否正确插入,或密码是否正确!'; alert(errorMsg); return false; } //获取证书PEM值 var strClientCert = NJCA.GetCertEx(2); //参数请默认为2 if('' == strClientCert ||strClientCert==null) { alert("证书获取异常!\n请确认CA的UKEY是否正确插入,或证书是否存在!"); NJCA.GetLastErrorInfo(0); return false; } var yxqts = NJCA.GetCertInfo(strClientCert, 3043, ''); //证书有效期剩余天数 if(yxqts<=30){ if(yxqts<=0){ alert("证书已过期!\n请联系CA延期证书再使用:400-880-4959"); return false; } alert("证书有效期还剩"+yxqts+"天!\n请尽快联系CA延期证书:400-880-4959"); } var certcn = NJCA.GetCertInfo(strClientCert, 3007, ''); //证书名称,一般为企业名称或个人姓名,根据业务系统需要获取 var certSn = NJCA.GetCertInfo(strClientCert, 3031, ''); //证书序列号,每个证书都不一样,根据业务系统需要获取 //获取证书O项信息 var userOrg = NJCA.GetCertInfo(strClientCert, 3005, ''); var sjs = Math.random();//产生随机数 var bRet = NJCA.Sign(sjs); //客户端对随机数签名 返回true/false 即签名成功/签名失败 var signData = ""; if (bRet){ signData = NJCA.SignedData;//签名成功,NJCA.SignedData为签名结果 }else{ alert("执行签名失败!请确认密码是否正确,或UKEY是否正确插入!"); return false; } console.log("扩展域信息:"+NJCA.GetExtensionInfo("1.2.156.10260.4.1.1")); } //服务器端 String signData = request.getParameter("signData"); //来自客户端:证书签名结果 String certPem = request.getParameter("certPem");//来自客户端:证书PEM值 String certCn = request.getParameter("certCn");//企业中文名称或个人姓名 String certSn = request.getParameter("certSn"); //证书唯一标识,所有CA证书这一项是百分百确认是肯定不一样的 String userOrg = request.getParameter("userOrg");//证书O项 out.print("企业名称/个人姓名:"+certCn+","+"证书O项:"+userOrg+",证书唯一标识:"+certSn+"<br/><br/><br/>"); String strSOAPServer = "http://192.168.1.78:8080/soap"; //服务端地址,该地址为公网地址,测试时连接公网可用,正式使用可能需要更换为正式服务器地址 if (certPem != null && signData != null) { try{ //调用签名服务器接口,验证客户端证书有效性 String[] verifycert = new ahcapkiservers().ServerVClient( strSOAPServer , certPem , signData ); //返回结果为1表示验证成功,返回其它均表示失败;verifycert[1]为相应的说明,错误时为错误原因 if( verifycert[0].equals("1") ) out.print("<font color='blue'>"+verifycert[1]+",登陆成功!</font>"); else out.print("<font color='red'>登陆失败:"+verifycert[1]+"</font>"); }catch (Exception e) { out.print("调用服务器验证证书异常!"); } }

讯享网

 


讯享网

小讯
上一篇 2025-04-05 08:51
下一篇 2025-03-30 14:49

相关推荐

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