开发者社区> 技术小胖子> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

OpenSSL.Net创建HTTPS用的自签名证书

简介:
+关注继续查看

要为IIS开启https访问,需要先生成一个证书,找了找用openssl.net最省事,代码如下:


  1. //先用大整数来生成一个1024bit的密钥对 
  2. RSA rsa = new RSA(); 
  3. BigNumber number = OpenSSL.Core.Random.Next(10, 10, 1); 
  4. rsa.GenerateKeys(1024, number, nullnull); 
  5. CryptoKey key = new CryptoKey(rsa); 
  6.  
  7. //创建X509证书,Subject和Issuer相同 
  8. X509Certificate x509 = new X509Certificate(); 
  9. x509.SerialNumber = (int)DateTime.Now.Ticks; 
  10. x509.Subject = new X509Name("CN=DOMAIN");   //DOMAIN为站点域名 
  11. x509.Issuer = new X509Name("CN=DOMAIN"); 
  12. x509.PublicKey = key;    //指定公钥 
  13. x509.NotBefore = Convert.ToDateTime("2011-1-1"); //起始时间 
  14. x509.NotAfter = Convert.ToDateTime("2050-1-1");  //失效时间 
  15. x509.Version = 2; 
  16.  
  17. //用私钥签一下名 
  18. x509.Sign(key, MessageDigest.MD5); 
  19.  
  20. //输出到crt文件中 
  21. BIO x509bio = BIO.File("C:\\CA.crt""w"); 
  22. x509.Write(x509bio); 
  23.  
  24. //生成pfx文件,注意证书链必须是空的 
  25. var certs = new OpenSSL.Core.Stack<X509Certificate>(); 
  26. PKCS12 p12 = new PKCS12("PASSWORD", key, x509, certs); //PASSWORD为保护密钥 
  27. BIO p12Bio = BIO.File("C:\\CA.pfx""w"); 
  28. p12.Write(p12Bio); 
  29.  
  30. //清理 
  31. rsa.Dispose(); 
  32. x509.Dispose(); 
  33. x509bio.Dispose(); 
  34. p12.Dispose(); 
  35. p12Bio.Dispose(); 

注意生成pfx时,证书链必须是空的,不能把自己加进去,否则证书看起来虽然没问题,但是绑定到iis时会出错。






     本文转自 BoyTNT 51CTO博客,原文链接:http://blog.51cto.com/boytnt/774885,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
06初始化HandlerMapping并根据Http请求获取HandlerExecutionChain
初始化HandlerMapping 根据request获取对应的HandlerExecutionChain RequestMappingHandlerMapping体系实现获取HandlerExecutionChain
44 0
如何处理页面关闭时发送HTTP请求?
在实际项目开发中,可能会遇到这样的业务问题:如何在用户离开或关闭页面时发送HTTP请求给服务端?可能有人会觉得页面都关闭了,还需要发送什么请求,完全没必要噻。但如果真有这样的业务需求落到自己的头上,那么我们应该如何来实现呢?
200 0
Java基础—实现微服务模块接收Http请求回调数据
本文中详细介绍在微服务模块中实现接收公网Http请求数据回调接口说明。
113 0
http请求网页编码乱码
牙叔教程 简单易懂
27 0
近期业务大量突增微服务性能优化总结-4.增加对于同步微服务的 HTTP 请求等待队列的监控
近期业务大量突增微服务性能优化总结-4.增加对于同步微服务的 HTTP 请求等待队列的监控
25 0
在Frida里面做http请求: 聊聊jar to dex
在Frida里面做http请求: 聊聊jar to dex
74 0
Wireshark的HTTP请求包和响应包如何对应
在查看Wireshark的解析记录时,请求包和响应包常常是密密麻麻堆在一起,如何根据一个请求包准确找到其对应的响应呢?请随本文步步实践,找到方法
70 0
HttpComponents HTTP请求入门解析
超文本传输协议(http)是目前互联网上极其普遍的传输协议,它为构建功能丰富,绚丽多彩的网页提供了强大的支持。构建一个网站,通常无需直接操作http协议,目前流行的WEB框架已经透明的将这些底层功能封装的很好了,如常见的J2EE, .NET, php等框架或语言。
152 0
http的option请求
如果你查资料(W3C规范),你会发现在跨域请求中,分为简单请求(get和部分post,post时content-type属于application/x-www-form-urlencoded,multipart/form-data,text/plain中的一种)和复杂请求。而复杂请求发出之前,就会出现一次options请求。
81 0
21114
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
低代码开发师(初级)实战教程
立即下载
阿里巴巴DevOps 最佳实践手册
立即下载
冬季实战营第三期:MySQL数据库进阶实战
立即下载