iis https 客户端证书
1、自建根证书
makecert -r -pe -n "CN=WebSSLTestRoot" -b 12/22/2013 -e 12/23/2024 -ss root -sr localmachine -len 2048
2、建网站用的证书
makecert -pe -n "CN=www.aaa.com" -b 12/22/2013 -e 12/23/2024 -eku 1.3.6.1.5.5.7.3.1 -is root -ir localmachine -in WebSSLTestRoot -len 2048 -ss WebHosting -sr localmachine
cn是网站对应的域名
3、建客户端证书
makecert -pe -n "CN=czcz1024" -eku 1.3.6.1.5.5.7.3.2 -is root -ir localmachine -in WebSSLTestRoot -ss my -sr currentuser -len 2048
cn可以是用户名
根证书在 本地计算机-受信任的根证书颁发机构
网站证书在 本地计算机-Web宿主
客户端证书在 当前用户-个人
iis中,建立网站用web宿主的
使用ie,访问,当客户端有证书试,会要求选择证书

string r;
HttpClientCertificate cert = Request.ClientCertificate;
if (cert.IsPresent)
r = cert.ServerSubject + "---" + cert.Subject;
else
r = "No certificate was found.";
return Content(r);
我们可以通过代码来获取证书信息

4、程序自动创建用户客户端证书
var path = @"…\makecert.exe";
var cmd = " -pe -n \"CN=czcz1024\" -eku 1.3.6.1.5.5.7.3.2 -is root -ir localmachine -in WebSSLTestRoot -ss my -sr currentuser -len 2048";
var p = Process.Start(path, cmd);
p.WaitForExit();
p.Close();
调用cmd去执行,需要iis已administrator身份运行

5、导出,并提供客户下载
X509Store store = new X509Store(StoreName.My, StoreLocation.CurrentUser);
store.Open(OpenFlags.MaxAllowed);
foreach (X509Certificate2 myX509Certificate2 in store.Certificates)
{
if (myX509Certificate2.Subject == "CN=czcz1024")
{
byte[] CertByte = myX509Certificate2.Export(X509ContentType.Pfx,"123456");
return File(CertByte, "application/octet-stream", "cert.pfx");
}
} return Content("not found");
同样,这个也需要administrator才能获取到
需要导出成pfx,客户端才可以导入,导入的时候,需要密码,密码为代码中的“123456”那部分
6、iis的ssl设置

如果是必需,当客户端没有证书时

当选择

没有证书则显示

对应上面代码的else分支
选择 忽略 则不会要求客户端提供证书了
自建根,当客户端访问时,需要导入根证书到受信任的根
iis https 客户端证书的更多相关文章
- OPENSSL 生成https 客户端证书
下面说下拿服务器证书.(前提是服务器是https,客户端认证用的时候),服务端不给的时候,我们自己去拿(不给怼他!,哈哈,开个玩笑,都会给的) openssl s_client -connect 域名 ...
- openssl nodejs https+客户端证书+usbkey
mac sslconfig 文件路径 /System/Library/OpenSSL/openssl.cnf 一生成CA openssl req -new -x509 -keyout ca.key - ...
- 给IIS添加CA证书以支持https
一.在IIS中生成Certificate Signing Request (CSR) 个人理解:生成CSR就是生成“私钥/公钥对”之后从中提取出公钥. 1. 打开IIS Manager,在根节点中选择 ...
- curl+个人证书(又叫客户端证书)访问https站点
摘自http://blog.csdn.net/chary8088/article/details/22990741 curl+个人证书(又叫客户端证书)访问https站点 目前,大公司的OA管理系统( ...
- Android : 关于HTTPS、TLS/SSL认证以及客户端证书导入方法
一.HTTPS 简介 HTTPS 全称 HTTP over TLS/SSL(TLS就是SSL的新版本3.1).TLS/SSL是在传输层上层的协议,应用层的下层,作为一个安全层而存在,翻译过来一般叫做传 ...
- MVC图片上传详解 IIS (安装SSL证书后) 实现 HTTP 自动跳转到 HTTPS C#中Enum用法小结 表达式目录树 “村长”教你测试用例 引用provinces.js的三级联动
MVC图片上传详解 MVC图片上传--控制器方法 新建一个控制器命名为File,定义一个Img方法 [HttpPost]public ActionResult Img(HttpPostedFile ...
- Linux OpenVPN 服务端吊销(revoke)客户端证书
(转自:https://www.xiaohui.com/dev/server/20070904-revoke-openvpn-client.htm) OpenVPN 服务器与 VPN 客户端之间的身份 ...
- tomcat 配置客户端证书认证
在完成配置客户端证书认证后,浏览器以https访问服务器的时候,会提示选择证书,之后,服务器端会验证证书.也就意味着只有拥有有效证书的客户端才能打开该网站. 以下是具体的配置过程. 1. 在服务器端生 ...
- https 双向证书
一:服务器端 1.首先需要配置站点的SSl证书 打开Nginx安装目录下conf目录中的nginx.conf文件 找到 # HTTPS server # #server { ...
随机推荐
- XAF How to show custom forms and controls in XAF (Example)
XAF How to show custom forms and controls in XAF (Example) https://www.devexpress.com/Support/Center ...
- 利用反射实现类通用的DAO层
public void add(Object object) throws SQLException { ResultSet rs=null; PreparedStatement ps=null; C ...
- 【原创】--linux平台下opencv安装
1.到opencv官网下载源码 也可以下载此链接http://pan.baidu.com/s/1mgId5ZM 2.解压到任意目录 可以使用右键-提取到此处,也可以在命令行中使用指令解压(linux中 ...
- vpn找不到设备,win7建立新的VPN总时显示错误711,无法启动 Remote Access Connection Manager 及 Remote Access Auto Connection Manager 错误1068
试试相关服务!一.remote access connection manager是网络连接的服务,它依赖于Technology服务,现在你的这个服务已经启动,而Secure Socket Tunne ...
- step by step设置postgresql用户密码并配置远程连接
设置pgsql默认用户posgres的密码 1.确认pgsql是开启的 /etc/init.d/postgresql status 2.使用默认用户登录 sudo su postgres 3.进入ps ...
- lxc on centos
终于把lxc的网络配通了,也不知道对不对,记一下 一开始都是雷同的地方 yum install libcgroup lxc lxc-templates 安装lxc cgroup 然后记得 chkcon ...
- C++混合编程之idlcpp教程Python篇(7)
上一篇在这 C++混合编程之idlcpp教程Python篇(6) 第一篇在这 C++混合编程之idlcpp教程(一) 与PythonTutorial4工程相似,工程PythonTutorial5中,同 ...
- 集合的扩展方法ForEach的使用
List<, , , , }; list.ForEach(p => Console.WriteLine(p)); 或者 List<, , , , }; list.ForEach(p ...
- Emberjs之ComputedProperty
计算属性,以下简称CP.简单概括来讲,就是在需要属性值的时候计算一个Function,并将Function返回的值保存在属性中,当第二次获取属性值时,如果发现属性并未改变则直接读取属性,如果属性依赖的 ...
- Http规范
1. 关于 HTTP Basic Authentication http://blog.itpub.net/23071790/viewspace-709367/ 通过以下代码,提示用户登录 Respo ...