【Jsp精品源码栏目提醒】:网学会员--在 Jsp精品源码编辑为广大网友搜集整理了:CQCCA数字证书安全登录接口说明 - 其它资料绩等信息,祝愿广大网友取得需要的信息,参考学习。
CQCCA 数字证书安全登录 接口说明1 V-CTK 控件 V-CTK 是由中认环宇独立开发,完成对 Windows 平台证书操作的 COM 控件,利用控件提供的接口,可以设置系统证书列表的过滤条件,显示证书的各种属性,使用证书对字符串签名验证,以及对数据加密解密。
控件 CLISID:D382D2C6-F022-4C9B-B33B-A8B0055FE72D1.1 V-CTK 控件的安装两种安装方式: 通过网页 通过 CQCCA 数字签名组件安装 执行 CQCCA 数字签名组件.exe 安全程序。
说明:可在 CQCCA 网站上下载这个组件。
1.2 创建 V-CTK 控件对象 在您页面 HTML
源码的 之间加入 1. 以上代码会创建一个名为 SignForm 的 V-CTK 对象。
1.3 V-CTK 控件的使用1.1.1 证书过滤 系统中可能存储着大量证书,用户进行特定的邮件或交易操作时,可能只对部分的证书感兴趣,使用证书过滤条件可以方便的选择用户希望的证书。
证书过滤接口: SignForm.Filter; 该接口提供三个属性设置过滤条件: 1 SignForm.Filter.Subject:根据证书的主题过滤证书; 2 SignForm.Filter.Issuers:数组类型,根据证书的颁发者主题过滤证 书; 3 SignForm.Filter.SerialNumber:根据证书的序列号过滤证书。
JavaScript 代码举例: 1. SignForm.Filter.Issuers new Array 2. // 设置证书过滤条件:颁发者为 CQCCA 3. CCN OChina Quality Certification Center CNCQC CA 4. 1.1.2 返回证书集合 JavaScript 代码: var certs SignForm.MyCertificates 上述代码返回了证书集合;如果在上述代码前先执行证书过滤代码,则返回的是过滤后的证书集合。
集合的元素类型是 Certificate 类型;1.1.3 通过 Certificate 对象访问证书的属性 在选择了当前证书后可利用对象提供的各种功能获得数字证书的属性,例如: 证书通用名:CurCert.CommonName 证书主题: CurCert.Subject 颁发者主题:CurCert.Issuer 证书 CSP: CurCert.CSP 证书序列号:CurCert.SerialNumber JavaScript 代码举例: 1. // 返回证书集合第 0 个元素的证书主题 2. var certSubject SignForm.MyCertificates0.Subject1.1.4 使用 Certificate 对象进行数字签名使用数字证书进行数字签名的 JavaScript 代码如下: signedData CurCert.SignMessageoriginalText其中: originalText:为待签名的数据。
signedData:为函数返回的 PKCS7 格式签名数据。
2 V-STK - Java 证书应用开发套件 V-STK 是由中认环宇独立开发,完成对客户端签名数据的验证等操作。
Java证书应用开发套件 SECeasePKI.1.2.0.0.jar(目前最新版本 1.2.0.0)可运行于 JavaRuntime Environment 1.4 or 1.5 及以上版本。
2.1 V-STK 的集成 V-STK 支持于 Java 项目,本文用 JavaEE 项目为例,介绍如何集成到 Java Web项目中。
2.1.1 依赖的 lib 包 1 SECeasePKI.1.2.0.0.jar 2 bcmail-jdk15.jar 3 bcprov-jdk15-137.jar 4 commons-logging.jar 5 log4j.jar2.1.2 V-STK 配置文件 主要用于 CRL 的更新策略配置,需将配置文件引入到工程中,代码如下:BC 60 ldap://ldap.cqcca.com:389/CNcrlOUCQC CA CRLOChina QualityCertification CenterCCNcertificateRevocationListbinary cafiles/CQCCA.crl cafiles/CQCCA.cer 将上面的代码保持到 xml 文件中,并存放在 WEB-INF 目录下,同时在WEB-INF 目录建立 cafiles 目录,用于存放 CQCCA.crl 文件和 CQCCA.cer 文件。
2.1.3 V-STK 启动 Java 代码: 1. CVM.config“V-STK 配置文件路径” 通常在 Java WEB 应用启动时启动 V-STK,可以把上一行代码写入 Servlet 或系统监听中,随着应用的启动一并执行。
2.2 利用 V-STK 验证证书签名2.2.1 验证签名方法 1. java.security.cert.X509Certificate x509Cert SVM.verifySignatureoriToSign signedData 其中: oriToSign:为待签名的数据。
signedData:为函数返回的 PKCS7 格式签名数据。
返回值: X509Certificate 格式的证书对象 2. com.secease.cert.X509Certificate cert X509Certificate.getInstancex509Cert 作用:将 x509Cert 对象转换为 com.secease.cert.X509Certificate 对象2.2.2 判断验签结果 1. int ret CVM.verifyCertificatecert 上述代码会返回一个 int 类型的状态,参照下面的常量类判断签名的结果。
public interface com.secease.cvm.CertificateStatus public final int CVM_INIT_ERROR -1 public final int VALID 0// 正常 public final int EXPIRED 1// 过期但没有被吊销过 public final int REVOKED 2// 已吊销但还没有过期 public final int UNKNOWN_ISSUER 3// 不是系统所支持的CA所颁发 public final int ILLEGAL_ISSUER 4// 非法CA所颁发证书 public final int CRL_UNAVAILABLE 5// 没有可供查询的CRL public final int REVOKED_AND_EXPIRED 6// 过期而且被吊销 public final int UNKNOWN_STATUS 7 public final int ACCOUNT_MISMATCH 8// 账户不匹配3 caloginDemo 工程介绍 caloginDemo 功能是数字证书登录的演示,在开发过程中可以参考此工程的结构来进行代码的整合,整合时参考一下几点:1、 secease 目录包含所用到的控件,只需加入工程中即可。
2、 将 WEB-INF/lib 中的 jar 包加入工程。
3、 将 WEB-INF 下的 cafiles 文件夹和 ca-config.xml 配置文件拷入工程目录下。
Cafiles 文件夹 中有两个文件 CQCCA.cer 和 CQCCA.crl,其中 CQCCA.cer 是根证书,CQCCA.crl 是证书吊 销列表,存放被吊销的证书信息。
证书吊销列表需要定时更新,ca-config.xml 中配置了 列表的更新地址和更新间隔时间。
4、 修改 web.xml 文件,在 web.xml 文件中添加下列代码: CAConfig com.cqcca.CAConfigCVMConfigFile/WEB-INF/ca-config.xml 15、 参考 index.
jsp 文件书写调用函数: 该部分语句在服务器端产生随机数,并将该随机数存放在 session 中。
通过该段代码将 secease 中的控件以及封装好的函数加载进来。
表单提交函数 function formSubmit中, signature SignMessageform.random.value 语句用来对对象进行签名,签名对象为服务器端产生的随机数,签名结果为 signature。
通过该语句将证书信息加载到选择证书的下拉框中。
该段代码用来过滤证书信息。
SetFilters函数包含三个参数:证书颁发者、证书主题和证书序列号,设定三个参数过滤证书后,通过 InitCertList函数来初始化下拉框列表。