我安装一台证书服务器,安装时候它本身就生成了一个证书(例如A),我想要在客户端检测这个证书(A),而不是检测通过它颁发的证书。
通过iis搭建ssl只能检测到通过证书服务器颁发的用户证书,而不能获取证书A本身。
c#代码如下:
if(Request.IsSecureConnection)
{
HttpClientCertificate hCert = Request.ClientCertificate;
if (hCert == null)
{
Response.Write("没有客户端证书");
return;
}
X509Certificate2 cert = new X509Certificate2();
try
{
cert.Import(hCert.Certificate);
}
catch (Exception e)
{
Response.Write(e.Message);
return;
}
而通过ActiveXObject可以在IE下检测到证书,但不支持firefox,
我的目的只有一个就是检测客户端特定的证书,有没有什么方法办到,急等答案。有没有哪位大虾知道
通过iis搭建ssl只能检测到通过证书服务器颁发的用户证书,而不能获取证书A本身。
c#代码如下:
if(Request.IsSecureConnection)
{
HttpClientCertificate hCert = Request.ClientCertificate;
if (hCert == null)
{
Response.Write("没有客户端证书");
return;
}
X509Certificate2 cert = new X509Certificate2();
try
{
cert.Import(hCert.Certificate);
}
catch (Exception e)
{
Response.Write(e.Message);
return;
}
而通过ActiveXObject可以在IE下检测到证书,但不支持firefox,
我的目的只有一个就是检测客户端特定的证书,有没有什么方法办到,急等答案。有没有哪位大虾知道
先要导入客户端证书,运行 certmgr.msc, 然后把证书导入到“个人”类别下。在IIS服务器的SSL设置中,选择“客户证书”为“必需”,这样浏览器访问网站时,会提示用户选择提供哪张证书。
图1:而我想通过web这种方式,检测证书服务器安装时自带的证书是否导入到客户端,这个证书可以给其它使用者颁发证书。类似图2
图2:如果ssl不行,是否有其它的方法,只要不是ActiveXObject,不开发额外的控件就行。
我翻遍各种帖子,求解中...,大虾们,给个方法...
客户端证书的签发机构(ca)要加到服务器端的“企业信任”中(通常是自签发的测试证书),或者把ca root加到“受信任的根证书颁发机构”(如果你的证书是从VeriSign,CFCA这样的CA/RA机构购买的话)。你的需求看了好几遍还是没看懂
对于SSL双向证书验证来说,有两套证书:客户端证书以及客户端证书的颁证机构(ca)、服务器证书以及服务器证书的颁证机构(ca)。
客户端ca证书是要加到服务器的受信任证书中,表示服务器认可客户端的发证机构。
而服务器的ca证书要加到客户端的受信任证书中,表示客户端相信服务器的发证机构。
当然通常情况下这两套证书很可能是同一个root ca签发的。
客户端证书的证书链中包含所有签发这张证书的CA/RA机构的证书信息,比如在你3楼的例子中:
vspdc-devel.vsdevel.corp.landhightech.com这张证书是由vsdevel-VSPDC-DEVEL-CA签发的。
你可以用X509Chain这个类来获取证书链里的证书信息。