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分支

 

选择 忽略 则不会要求客户端提供证书了

 

自建根,当客户端访问时,需要导入根证书到受信任的根

时间: 2024-10-08 14:16:33

iis https 客户端证书的相关文章

IIS SSL客户端证书(忽略/接受/必须)之一——服务器证书申请

Technorati 标记: IIS,CA,证书,SSL,客户端证书,夏明亮 [第一部分 环境介绍] 架构 1台CA(独立根CA) 1台IIS Server 1台客户端计算机 版本 所有的计算机OS均为Windows Server 2008 R2,所以IIS为7.0版本. [第二部分 测试环境准备] 一 搭建一台CA Server 此部分内容相对简单,如果你是刚接触这方面的内容,可以我之前的文章,链接如下: http://mlxia.blog.51cto.com/972988/1217914 注

IIS SSL客户端证书(忽略/接受/必须)之二——客户端证书申请

Technorati 标记: IIS,CA,证书,SSL,客户端证书,夏明亮 [第三部分 客户端证书申请] 1. 来到需要访问站点的客户端服务器,运行mmc. 下面是申请用户证书的步骤,比较简单没什么可以解释的,直接看图吧. 创建自定义请求. 下一步 模板选择用户. 属性. 友好名称写需要使用证书的用户名. 为证书添加公用名. 下一步. 和上面服务器证书申请差不多重复了,不解释了. 来看看这证书是否安装好了. 在访问一下试试 注意:此时我是使用其他账户而非administrator登陆的,因此和

IIS SSL客户端证书(忽略/接受/必须)之三——思考验证(3)

Technorati 标记: IIS,CA,证书,SSL,客户端证书,夏明亮 [三:CA服务器中删除客户端证书(CA),客户端可用?] 1.在CA Server中吊销刚颁发的客户端证书. 2.测试使用已经被吊销的客户端证书访问WEB Site. 证明:删除CA服务器中的证书后,客户端证书依然可用. [四:证明客户端证书注册时不写friendly name是否正常?] 1.申请客户端证书. 2.Name随便写. 3.提交. 4.手动颁发证书. 5.安装证书. 6.测试使用新证书访问WEB站点. 7

OPENSSL 生成https 客户端证书

下面说下拿服务器证书.(前提是服务器是https,客户端认证用的时候),服务端不给的时候,我们自己去拿(不给怼他!,哈哈,开个玩笑,都会给的) openssl s_client -connect 域名:端口号 -showcerts|openssl x509 -outform der > cert.der 例如: openssl s_client -connect www.baidu.com:443 -showcerts|openssl x509 -outform der > cert.der

openssl nodejs https+客户端证书+usbkey

mac sslconfig 文件路径 /System/Library/OpenSSL/openssl.cnf 一生成CA openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf cdpmacdeMBP:mkssl3 cdpmac$ openssl req -new -x509 -keyout ca.key -out ca.crt -config openssl.cnf Generating a 1024 bit

CentOS https 客户端证书制作

* Eev:Centos 6.5 #建议先删除相关信息 find /etc/pki/ -name "*.pem" -exec rm -f {} \; find /etc/pki/ -name "index.txt" -exec rm -f {} \; touch /etc/pki/CA/index.txt #生成新的ca /etc/pki/tls/misc/CA -newca openssl genrsa -des3 -out clinet.key 2048 ope

Linux OpenVPN 服务端吊销(revoke)客户端证书(转自:https://www.xiaohui.com/dev/server/20070904-revoke-openvpn-client.htm)

OpenVPN 服务器与 VPN 客户端之间的身份验证, 主要是通过证书来进行的.有时我们需要禁止某个用户连接 VPN 服务器,则将其证书吊销即可.要吊销(Revoke) OpenVPN 客户端证书,可以参照本文( https://www.xiaohui.com/dev/server/20070904-revoke-openvpn-client.htm )中的步骤执行(以 Linux 系统为例.Windows 下的大同小异): 进入 OpenVPN 安装目录的 easy-rsa 子目录.例如我的

IIS上架设https网站证书处理备忘

1. 免费SSL证书申请 https://www.startssl.com 教程:http://hxs.fd.fj.cn/?action=show&id=13 2. 证书转换 申请到的证书有两个关键文件(适用于openssl文本格式), xxx.key & xxx.crt,要在IIS上安装需要转换成pfx格式,转换命令: openssl pkcs12 -export -out server.pfx -inkey xxx.key -in xxx.crt 3. 证书安装 在IIS中,打开“服务

nodejs 客户端证书设置。

最近的系统要求较高的安全等级 https+usbkey证书 https的操作很简单 openssl 生成ca 和证书,配置启动即可 生成成功后,类似这样. 类似这样 var options = { key: fs.readFileSync(__dirname + '/server.key'), cert: fs.readFileSync(__dirname+'/server.pem'), ca: fs.readFileSync(__dirname+'/ca.crt'), auth:"1CUI&q