在C#中使用 makecert 创建自签名的证书

  class  Program
    
{
        
static void Main(string[] args)
        
{
            X509Certificate2 cert 
= CreateCertificate();
            
//cert.ToString();
            Console.Write(cert.ToString());
            Console.Read();
        }



        
public static X509Certificate2 CreateCertificate()
        
{
            
// makecert -r -pe -n "CN=TestUser" -ss my -sr currentuser 
            
//      -sky exchange ./TestUser.cer

            
//const string MakeCert = "C://Program Files//Microsoft Visual Studio 8//Common7//Tools//Bin//makecert.exe";
            const string MakeCert = "C://Program Files//Microsoft Visual Studio 8//SDK//v2.0//Bin//makecert.exe";

            
//string fileName = Path.ChangeExtension(Path.GetTempFileName(), "cer");
            string fileName = Path.ChangeExtension("d://""cer");
            
string userName = Guid.NewGuid().ToString();

            
string arguments =
                
string.Format("-r -pe -n /"CN={0}/" -ss my -sr currentuser -sky exchange /"{1}/"",
                userName, fileName);

            Process p 
= Process.Start(MakeCert, arguments);
            p.WaitForExit();

            
byte[] certBytes = ReadFile(fileName);
            X509Certificate2 cert 
= new X509Certificate2(certBytes);
            
return cert;
        }


        
internal static byte[] ReadFile(string fileName)
        
{
            
using (FileStream f = new FileStream(fileName, FileMode.Open, FileAccess.Read))
            
{
                
int size = (int)f.Length;
                
byte[] data = new byte[size];
                size 
= f.Read(data, 0, size);
                
return data;
            }

        }


    }
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值