重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1. 获取访问网站需要的证书
为叶集等地区用户提供了全套网页设计制作服务,及叶集网站建设行业解决方案。主营业务为网站制作、成都做网站、叶集网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!
2. 从微软官网下载“资源工具箱”,其中包括证书管理工具。
http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=17657
安装完,Windows HTTP服务证书配置工具(WinHttpCertCfg.exe)通常应该在C:\Program Files\Windows Resource Kits\Tools文件夹下。
3. 使用CMD命令行,运行WinHttpCertCfg.exe工具;
WinHttpCertCfg.exe –g –c LOCAL_MACHINE\MY –i “你的证书地址” –a “授权的用户组/名” –p密码
给IIS服务用户组授权并导入证书。
这样,就可以在IIS管理,证书页面可以看到刚才导入的证书。
重启IIS服务,使刚才的授权生效。
4. 导出证书为.CER文件
开始—》运行—》输入MMC;打开控制台
文件—》添加/删除管理单元
选择“证书”,点击“添加”,选择“计算机账号”,“下一步”,“完成”,“确定”
选择“个人”—》“证书”;
右键单击证书,“所有任务”—》“导出”—》“下一步”—》“下一步”
选择
,点击“下一步”,单击“浏览”,输入要保存的文件名和地址,“下一步”—》“完成”;
导出成功!
5. C#使用证书进行SSL安全通信代码示例
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- //引用命名空间
- using System.IO;
- using System.Net;
- using System.Net.Security;
- using System.Security.Authentication;
- using System.Security.Cryptography.X509Certificates;
- public partial class ssl : System.Web.UI.Page
- {
- protected void Page_Load(object sender, EventArgs e)
- {
- //验证服务器证书回调方法
- ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(CheckValidationResult);
- //创建HttpWebRequest对象
- HttpWebRequest https = (HttpWebRequest)HttpWebRequest.Create("https://localhost/restful/test/BBBAAA");
- //创建证书
- X509Certificate obj509 = new X509Certificate(AppDomain.CurrentDomain.BaseDirectory+"cert\\ccc.cer");//写入正确的证书路径(第四步导出的Cer文件)
- //添加证书到HTTP请求中
- https.ClientCertificates.Add(obj509);
- https.Method = "GET";
- //获取请求返回的数据
- HttpWebResponse response = (HttpWebResponse)https.GetResponse();
- //读取返回的信息
- StreamReader sr = new StreamReader(response.GetResponseStream(), true);
- int count;
- char[] ReadBuf = new char[1024];
- do
- {
- count = sr.Read(ReadBuf, 0, 1024);
- if (0 != count)
- {
- Label3.Text = new string(ReadBuf);
- }
- } while (count > 0);
- }
- //重写证书验证方法,总是返回TRUE,解决未能为SSL/TLS安全通道建立信任关系的问题
- public bool CheckValidationResult(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors)
- {
- //总是返回TRUE
- return true;
- }
- }