C#通过CertEnroll.dll创建证书请求并生成证书

本文介绍了如何利用C#和CertEnroll.dll库创建证书请求,然后发送请求到证书颁发机构(CA),在请求被批准后获取证书,并最终在客户端机器上安装该证书。主要涉及的类包括CX509CertificateRequestPkcs10、CX509PrivateKey等,以及关键方法如CreateRequest、sendRequest和acceptPKCS7。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本例子的原理是,创建一个pkcs10的证书申请,再调用本地的证书颁发机构,生成证书。安装到本地计算机中。 

using CERTENROLLLib;
 using CERTCLIENTLib;
 
 
创建私有变量
private const int CC_DEFAULTCONFIG = 0;
 
        private const int CC_UIPICKCONFIG = 0x1;
 
        private const int CR_IN_BASE64 = 0x1;
 
        private const int CR_IN_FORMATANY = 0;
 
        private const int CR_IN_PKCS10 = 0x100;
 
        private const int CR_DISP_ISSUED = 0x3;
 
        private const int CR_DISP_UNDER_SUBMISSION = 0x5;
 
        private const int CR_OUT_BASE64 = 0x1;
 
        private const int CR_OUT_CHAIN = 0x100;
 
        private string sOK = "";
 
创建证书请求
public string createRequest(string name, ref string strRequest)
 
        {
 
            //  Create all the objects that will be required
 
            CX509CertificateRequestPkcs10 objPkcs10 = new CX509CertificateRequestPkcs10Class();
 
            CX509PrivateKey objPrivateKey = new CX509PrivateKeyClass();
 
            CCspInformation objCSP = new CCspInformationClass();
 
            CCspInformations objCSPs = new CCspInformationsClass();
 
            CX500DistinguishedName objDN = new CX500DistinguishedNameClass();
 
            CX509Enrollment objEnroll = new CX509EnrollmentClass();
 
            CObjectIds objObjectIds = new CObjectIdsClass();
 
            CObjectId objObjectId = new CObjectIdClass();
 
            CX509ExtensionKeyUsage objExtensionKeyUsage = new CX509ExtensionKeyUsageClass();
 
            CX509ExtensionEnhancedKeyUsage objX509ExtensionEnhancedKeyUsage
		 = new CX509ExtensionEnhancedKeyUsageClass();
 
 
 
            try
 
            {
 
 
 
 
 
                //  Initialize the csp object using the desired Cryptograhic Service Provider (CSP)
 
                objCSP.InitializeFromName(
 
                    "Microsoft Enhanced Cryptographic Provider v1.0"
 
                );
 
 
 
             
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值