Skip to content

数字证书签名相关属性

DS_CSPProviderName

说明:
String型字符串;可读写;读取/设置CSP提供者的名称。可用于过滤可用的私钥签名证书。

语法:

javascript
// 设置
Obj.DS_CSPProviderName = "Microsoft Enhanced Cryptographic Provider v1.0";

// 读取
var cspProvider = Obj.DS_CSPProviderName;

使用示例:

javascript
// 设置CSP提供者名称
Obj.DS_CSPProviderName = "Microsoft Enhanced Cryptographic Provider v1.0";

// 设置其他常见的CSP提供者
Obj.DS_CSPProviderName = "Microsoft Base Cryptographic Provider v1.0";
Obj.DS_CSPProviderName = "Microsoft Strong Cryptographic Provider";

// 读取当前设置的CSP提供者
var currentProvider = Obj.DS_CSPProviderName;
console.log("当前CSP提供者:", currentProvider);

常见CSP提供者名称:

  • Microsoft Base Cryptographic Provider v1.0
  • Microsoft Enhanced Cryptographic Provider v1.0
  • Microsoft Strong Cryptographic Provider
  • Microsoft RSA SChannel Cryptographic Provider
  • Microsoft DSS Cryptographic Provider

DS_CSPIssuerName

说明:
String型字符串;可读写;读取/设置证书发行者名称。可用于过滤可用的私钥签名证书。

语法:

javascript
// 设置
Obj.DS_CSPIssuerName = "CN=Your Certificate Authority";

// 读取
var issuerName = Obj.DS_CSPIssuerName;

使用示例:

javascript
// 设置证书发行者名称
Obj.DS_CSPIssuerName = "CN=Your Certificate Authority, O=Your Organization";

// 设置特定的证书发行者
Obj.DS_CSPIssuerName = "CN=VeriSign Class 3 Code Signing 2009-2 CA";

// 读取当前设置的发行者名称
var currentIssuer = Obj.DS_CSPIssuerName;
console.log("当前证书发行者:", currentIssuer);

综合使用示例

数字证书配置

javascript
// 配置数字证书签名参数
function configureDigitalSignature() {
    // 设置CSP提供者
    Obj.DS_CSPProviderName = "Microsoft Enhanced Cryptographic Provider v1.0";
    
    // 设置证书发行者
    Obj.DS_CSPIssuerName = "CN=Your Certificate Authority, O=Your Organization";
    
    console.log("数字证书配置完成");
    console.log("CSP提供者:", Obj.DS_CSPProviderName);
    console.log("证书发行者:", Obj.DS_CSPIssuerName);
}

证书过滤功能

javascript
// 根据CSP提供者过滤证书
function filterCertificatesByCSP(providerName) {
    Obj.DS_CSPProviderName = providerName;
    
    // 获取可用的签名证书列表
    // 这里需要配合其他方法获取证书列表
    console.log("已设置CSP提供者过滤:", providerName);
}

// 根据发行者过滤证书
function filterCertificatesByIssuer(issuerName) {
    Obj.DS_CSPIssuerName = issuerName;
    
    // 获取可用的签名证书列表
    // 这里需要配合其他方法获取证书列表
    console.log("已设置发行者过滤:", issuerName);
}

证书验证

javascript
// 验证证书配置
function validateCertificateConfig() {
    var cspProvider = Obj.DS_CSPProviderName;
    var issuerName = Obj.DS_CSPIssuerName;
    
    console.log("证书配置验证:");
    console.log("CSP提供者:", cspProvider || "未设置");
    console.log("发行者名称:", issuerName || "未设置");
    
    if (!cspProvider && !issuerName) {
        console.log("警告: 未设置任何证书过滤条件");
        return false;
    }
    
    return true;
}

动态证书选择

javascript
// 动态设置证书过滤条件
function setCertificateFilter(options) {
    if (options.cspProvider) {
        Obj.DS_CSPProviderName = options.cspProvider;
        console.log("已设置CSP提供者:", options.cspProvider);
    }
    
    if (options.issuerName) {
        Obj.DS_CSPIssuerName = options.issuerName;
        console.log("已设置发行者:", options.issuerName);
    }
}

// 使用示例
setCertificateFilter({
    cspProvider: "Microsoft Enhanced Cryptographic Provider v1.0",
    issuerName: "CN=Your CA, O=Your Org"
});

属性分类总结

属性功能类型说明
DS_CSPProviderNameCSP提供者过滤String用于过滤可用的私钥签名证书
DS_CSPIssuerName证书发行者过滤String用于过滤可用的私钥签名证书

数字证书签名流程

1. 证书准备阶段

javascript
// 设置证书过滤条件
function prepareCertificate() {
    // 设置CSP提供者(可选)
    Obj.DS_CSPProviderName = "Microsoft Enhanced Cryptographic Provider v1.0";
    
    // 设置证书发行者(可选)
    Obj.DS_CSPIssuerName = "CN=Your Certificate Authority";
    
    console.log("证书过滤条件已设置");
}

2. 证书选择阶段

javascript
// 证书选择逻辑
function selectCertificate() {
    // 根据设置的过滤条件,系统会显示符合条件的证书
    // 用户可以从证书列表中选择要使用的证书
    
    console.log("请从证书列表中选择要使用的证书");
}

3. 签名执行阶段

javascript
// 执行数字签名
function executeDigitalSignature() {
    // 这里需要调用相应的签名方法
    // 例如:Obj.SignDocument() 或其他签名相关方法
    
    console.log("正在执行数字签名...");
}

常见CSP提供者说明

CSP提供者名称说明适用场景
Microsoft Base Cryptographic Provider v1.0基础加密提供者基本加密操作
Microsoft Enhanced Cryptographic Provider v1.0增强加密提供者高安全性要求
Microsoft Strong Cryptographic Provider强加密提供者企业级应用
Microsoft RSA SChannel Cryptographic ProviderRSA通道加密SSL/TLS连接
Microsoft DSS Cryptographic ProviderDSS数字签名数字签名专用

证书发行者格式

标准格式示例

CN=证书名称, O=组织名称, C=国家代码

常见格式

CN=Your Certificate Authority, O=Your Organization, C=CN
CN=VeriSign Class 3 Code Signing 2009-2 CA, O=VeriSign, Inc., C=US
CN=DigiCert SHA2 Assured ID Code Signing CA, OU=www.digicert.com, O=DigiCert Inc, C=US

注意事项

  1. CSP提供者兼容性:不同的CSP提供者支持不同的加密算法和密钥长度
  2. 证书格式:证书发行者名称需要按照标准格式设置
  3. 过滤效果:设置过滤条件后,只有符合条件的证书才会显示在证书列表中
  4. 证书有效性:确保系统中存在符合条件的有效证书
  5. 权限要求:数字签名操作通常需要相应的系统权限
  6. 证书链验证:签名时会验证证书链的完整性
  7. 时间戳服务:某些签名场景可能需要配置时间戳服务

错误处理

javascript
// 证书配置错误处理
function handleCertificateError() {
    try {
        // 设置证书过滤条件
        Obj.DS_CSPProviderName = "Invalid CSP Provider";
        Obj.DS_CSPIssuerName = "Invalid Issuer";
        
        console.log("证书过滤条件设置完成");
    } catch (error) {
        console.error("证书配置错误:", error.message);
        
        // 重置为默认值
        Obj.DS_CSPProviderName = "";
        Obj.DS_CSPIssuerName = "";
    }
}

最佳实践

  1. 证书管理:建议在系统证书存储中预先安装所需的证书
  2. 过滤策略:根据实际需求设置合适的过滤条件
  3. 错误处理:实现完善的错误处理机制
  4. 用户提示:为用户提供清晰的证书选择指导
  5. 安全考虑:确保证书的私钥安全存储
  6. 兼容性测试:在不同环境下测试证书签名功能