Active Directory公钥使用

时间:2012-10-10 20:08:17

标签: c# active-directory ldap

我有一个客户端要求使用LDAP验证登录到我的Web应用程序的用户是否在其活动目录中。在尝试使用DirectoryEntry和DirectorySearcher .NET类进行连接时,我可以连接到他的AD服务器但不能访问它。

客户端的AD服务器有一个SSL证书,他给了我一个公钥文件,但我不知道如何在我的C#代码中使用这个公钥文件。

当我通过代码发出connect命令时,我通过Wireshark看到我的应用程序发送连接请求。然后我看到服务器响应“服务器Hello,证书,证书请求,服务器Hello完成”。然后我的应用程序在此之后才会响应。

在使用另一个我没有代码的人编写的应用程序时,我从服务器看到相同的请求,然后看到应用程序响应“证书,客户端密钥交换”,然后应用程序连接并运行。

话虽如此,我的问题就变成了,如何让我的C#应用​​程序加载并发送我从客户端获得的密钥文件?

2 个答案:

答案 0 :(得分:1)

需要将密钥文件安装到用户计算机/用户帐户中。

请查看以下内容以了解如何安装数字证书......

见第3步......

http://msdn.microsoft.com/en-us/library/ff649247.aspx

步骤3.请求并安装客户端证书

此过程安装客户端证书。您可以使用任何证书颁发机构颁发的证书,也可以使用Microsoft证书服务生成自己的证书,如以下各节所述。

此过程假定Microsoft证书服务已配置为挂起请求,这需要管理员明确颁发证书。它还可以配置为自动颁发证书以响应证书请求。

检查证书申请状态设置

在Microsoft证书服务计算机上,从“管理工具”程序组中选择“证书颁发机构”。 展开“证书颁发机构(本地)”,右键单击证书颁发机构,然后单击“属性” 单击“策略模块”选项卡,然后单击“配置”。 检查默认操作。 以下过程假定将证书请求状态设置为pending。管理员必须明确发出证书已被选中。

申请客户端证书

启动Internet Explorer并导航到http:// hostname / certsrv,其中hostname是安装Microsoft证书服务的计算机的名称。 单击“申请证书”,然后单击“下一步”。 在“选择请求类型”页上,单击“用户证书”,然后单击“下一步”。 单击“提交”以完成请求。 关闭Internet Explorer。 发布客户端证书

从“管理工具”程序组中,启动“证书颁发机构”工具。 展开您的证书颁发机构,然后选择Pending Requests文件夹。 选择刚刚提交的证书请求,指向“操作”菜单上的“所有任务”,然后单击“发布”。 确认证书显示在“颁发的证书”文件夹中,然后双击它以进行查看。 在“详细信息”选项卡上,单击“复制到文件”以将证书另存为Base-64编码的X.509证书。 关闭证书的属性窗口。 关闭证书颁发机构工具。 安装客户端证书

要查看证书,请启动Windows资源管理器,导航到上一过程中保存的.cer文件,然后双击它。 单击“安装证书”,然后单击“证书导入向导”第一页上的“下一步”。 选择“根据证书类型自动选择证书存储”,然后单击“下一步”。 单击“完成”以完成向导。关闭确认消息框,然后单击“确定”关闭证书。 步骤4.验证客户端证书操作

此过程验证您是否可以使用客户端证书访问SecureApp应用程序。

验证客户端证书操作

启动Internet Explorer并导航到http s://localhost/secureapp/webform1.aspx。 确认网页显示成功。

答案 1 :(得分:0)

如何导出或导入PKCS#12证书?

PKCS#12文件可以由许多应用程序导入和导出,包括Microsoft IIS。它们通常与文件扩展名.pfx。

相关联

要创建PKCS#12证书,您需要私钥和证书。在转换过程中,您将有机会在证书上放置“导出密码”(如果您选择,可以为空)。

创建包含密钥和自签名证书的文件

openssl req \   -x509 -nodes -days 365 \   -newkey rsa:1024 -keyout mycert.pem -out mycert.pem

将mycert.pem导出为PKCS#12文件,mycert.pfx

openssl pkcs12 -export \   -out mycert.pfx -in mycert.pem \   -name“我的证书” 如果有人向您发送PKCS#12以及使用它所需的任何密码,您可以将其导出为标准PEM格式。

导出证书和无密码密钥

openssl pkcs12 -in mycert.pfx -out mycert.pem -nodes

与上述相同,但系统会提示您输入

的密码

私钥

openssl pkcs12 -in mycert.pfx -out mycert.pem