说明:需要先安装“Active Directory证书服务”,Windows Server2008R2 在添加角色中选择该“Active Directory证书服务” 和iis 安装即可。

1.      服务器端证书申请

(1)    选中IIS服务器选择右边创建证书申请。

(2)    在“申请证书”中通用名称可填写“IP” 然后下一步按照默认。

(3)    访问证书服务器Web注册站点“ http://IP地址/certsrv ” 选择“申请证书”—>“高级证书申请” –>“使用base64编码的CMC或PKCS#10文件提交一个证书申请,或使用base64编码的PKCS#7文件续订证书申请”。

(4)    把创建申请证书的文件内容复制到第一个文本框”Base-64 编码的证书申请“ 然后提交

(5)    在开始—> 管理工具—> 证书颁发机构—>挂起的申请,然后选中申请的证书右键颁发。

(6)    再回到证书服务器Web注册站点“ http://IP地址/certsrv ”  点击”查看挂起的证书申请状态“

(7)    下载刚申请的证书

(8)    回到IIS服务器,点击”完成证书申请“然后选择刚下载的证书。

(9)    IIS站点绑定证书 ,选中站点右键“编辑绑定“ 添加”https“类型、选择IP地址、SSL证书,然后确定。

(10)  SSL设置为客户证书必须

2.      客户端证书申请

(1)    运行”mmc“

(2)    文件—> 添加或删除管理单元—> 选择左边的”证书“  -–> 添加确定

(3)    在“个人“文件夹中申请证书,右键”所有任务“—>”高级操作“—>”创建自定义请求“根据默认下一步到”自定义请求“窗体点击右边“详细信息“à下面的”属性”友好名称中填写”administrator“继续在该窗体上面选项卡中点击”使用者“在下面类型中选择”公用名“,值填写”CN=administrator“ 然后添加,点击应用,确定,然后下一步,选择一个存储位置。

(4)    再回到证书服务器Web注册站点“ http://IP地址/certsrv ” 选择“证书申请“-->”高级证书申请“—>“使用base64编码的CMC或PKCS#10文件提交一个证书申请,或使用base64编码的PKCS#7文件续订证书申请” 把刚存储位置的文件内容复制到第一个文本框然后提交。

(5)    在开始—> 管理工具—> 证书颁发机构—>挂起的申请,然后选中申请的证书右键颁发。

(6)    回到证书服务器Web注册站点“ http://IP地址/certsrv ”  点击”查看挂起的证书申请状态“

(7)    下载刚申请的证书

(8)    打开刚下载的申请证书“安装“ 根据默认向导安装即可。

(9)    在“mmc“中查看证书是否安装好了

(10)  浏览地址查看是否可以显示,如果不能显示在浏览器中“安全“—>”证书“ -->”受信任的根证书颁发机构“ 选项卡中导入客户端证书。

如果还不能显示“清除SSL状态“,在IE浏览器中“内容”选项卡当中。

3.代码访问客户端证书信息

string userName = User.Identity.Name;
               greetingLabel.Text = "Welcome " + userName;
                HttpClientCertificate cert = Request.ClientCertificate;

int certCode=cert.CertEncoding;//证书编码
                string id=cert.Cookie;//获取客户证书唯一ID
                string issuer=cert.Issuer;//颁发者信息
                bool isValid=cert.IsValid;//客户端证书是否有效
                string serIssuer=cert.ServerIssuer;//服务器证书颁发者字段
                string serSubject=cert.ServerSubject;//服务器证书接收方字段
                string subject=cert.Subject;//客户证书接收方字段
                DateTime validFrom=cert.ValidFrom;//证书生效日期
                DateTime validUntil=cert.ValidUntil;//证书到期日期

StringBuilder str = new StringBuilder();
                str.AppendLine("客户端证书是否存在:" + cert.IsPresent);
                str.AppendLine("证书编码:"+certCode);
                str.AppendLine("获取客户证书唯一ID:"+id);
                str.AppendLine("颁发者信息:"+issuer);
                str.AppendLine("客户端证书是否有效:"+isValid);
                str.AppendLine("服务器证书颁发者字段:"+serIssuer);
                str.AppendLine("服务器证书接收方字段:"+serSubject);
                str.AppendLine("客户证书接收方字段:"+subject);
                str.AppendLine("证书生效日期:"+validFrom);
                str.AppendLine("证书到期日期:"+validUntil);

注:如果想https和http都可以访问页面,在iis中、SSL设置中、客户证书选择“接受”即可,但是只能https访问到证书信息,http访问不了证书信息。

iis 使用服务器端证书和客户端证书及访问客户端证书信息相关推荐

  1. GDC服务器主机与证书不匹配,调用web服务soap时,错误https URL主机名与客户端信任库中服务器证书上的公用名(CN)不匹配...

    嘿,我想用SAAJ调用soap web服务 我用野蝇10 我试图将此系统属性添加到standalone.xml,但无法工作 20: 53:08208错误[stderr](默认任务-21),原因是:ja ...

  2. iOS客户端校验https网络请求证书

    其实iOS系统的网络请求都有校验,比如NSURLConnection.NSURLSession都有系统的自动校验.具体的校验可进行百度 我使用的是NSURLConnection进行的网络请求,NSUR ...

  3. IIS/IIS Express中遇到的证书问题,此网站的安全证书存在问题。

    上面这幅图大家应该不陌生(觉得陌生的话就不用看下面的内容了,呵呵),再放上中英两段关键字: 根据验证过程,远程证书无效. The remote certificate is invalid accor ...

  4. StartSSL免费SSL证书成功申请-HTTPS让访问网站更安全

    http://www.freehao123.com/startssl-ssl/ 昨天写了更换空间后重新安装Godaddy SSL的文章,突然想到了一直有朋友向部落提到的StartSSL免费SSL证书服 ...

  5. openssl生成证书linux,Linux下使用openssl生成证书

    利用OpenSSL生成库和命令程序,在生成的命令程序中包括对加/解密算法的测试,openssl程序,ca程序.利用openssl,ca可生成用于C/S模式的证书文件以及CA文件. 证书文件的生成步骤: ...

  6. SSL数字证书(一)CA、根证书与数字证书

    数字证书原理(〇)认识SSL SSL数字证书(一)CA.根证书与数字证书 SSL数字证书(二)使用makecert.exe签发证书 SSL数字证书(三)使用 openssl 生成证书 网络安全无疑是现 ...

  7. ssl证书的含义是什么,ssl证书有什么作用

    ssl是一种安全协议,这种协议一般都是配置在网站服务器当中的,所以ssl证书又被称之为服务器证书.这种证书可以保护网站信息安全,防止信息在传输的过程中被泄露出去.但是ssl的含义是什么呢?这种证书有什 ...

  8. python sanic 设置ssl证书_配置自签https ssl证书

    由于人们越来越重视网络安全,所以很多平台及系统都要求使用https方式接入.而且一些开源服务框架在调用时也只接受https请求,这将导致平时开发/测试时需要用到ssl证书的地方越来越多. 在2016年 ...

  9. ssl证书是由什么组成?ssl证书是什么?

    互联网的发展给人们的生活提供了便利,当然大家需要对SSL证书进行一定的了解,现在很多的网站都安装了SSL证书,网站的通信协议是http它是明文传输的,但是给网站安装SSL证书之后,那么网站的信息传输就 ...

最新文章

  1. 为Apache动态增加模块
  2. linux top命令查看内存及多核CPU的使用讲述【转】
  3. python小程序-python好玩的小程序
  4. PAT甲级1118 Birds in Forest :[C++题解]并查集
  5. MySQL数据库恢复(LOAD DATA)
  6. Android数据库高手秘籍(二):创建表和LitePal的基本用法
  7. apache poi使用例_GitHub - cooker/poi-examples: apache poi 使用案例
  8. Git 常用操作 | 重写 commit 历史
  9. fota 差分包_chaoFOTA
  10. 大容量存储方案_助力卫星发射!威固提供自主固盘,满足载荷数据大容量存储能力...
  11. 静态路由的不通配置方式
  12. 韩顺平图解Java设计模式
  13. 精灵骑士二觉_守护者二觉转职分析 精灵骑士二觉能有多强
  14. 个人账目管理系统oracle,个人账务管理系统(论文).doc
  15. Python基础之面向对象
  16. 帆软报表参数传给网络报表_自定义报表之自定义参数界面
  17. panic: reflect.Value.Interface: cannot return value obtained from unexported field or method
  18. 大数据埋点那些事儿,手机 APP 是不是在偷听我说话?
  19. simulink他励直流电动机串电阻启动仿真
  20. python跨年表白神器--你值得拥有!

热门文章

  1. 【深度学习】目标检测中 IOU 的概念及计算
  2. 解决element 导航栏不整齐问题
  3. P1648看守 题解
  4. ACE在windows下的编译及配置(VS2010) [大三四八九月实习]
  5. vxWorks6.8 操作系统下 QT 安装设置、运行方法
  6. 基于stm32单片机多功能可调时钟闹钟万年历计时器闹铃提醒Proteus仿真(源码+仿真+原理图+PCB)
  7. 简述REST与RESTFUL--简单明了一看就懂
  8. Arduino和_LCD1602A液晶_I2C实验(附bug解析)
  9. Python实现3D莫比乌斯环的绘制
  10. 三阶齐次线性方程求通解_阶常系数齐次线性微分方程的通解证明