我有一个客户端要求使用LDAP验证登录到我的Web应用程序的用户是否在其活动目录中。在尝试使用DirectoryEntry和DirectorySearcher .NET类进行连接时,我可以连接到他的AD服务器但不能访问它。
客户端的AD服务器有一个SSL证书,他给了我一个公钥文件,但我不知道如何在我的C#代码中使用这个公钥文件。
当我通过代码发出connect命令时,我通过Wireshark看到我的应用程序发送连接请求。然后我看到服务器响应“服务器Hello,证书,证书请求,服务器Hello完成”。然后我的应用程序在此之后才会响应。
在使用另一个我没有代码的人编写的应用程序时,我从服务器看到相同的请求,然后看到应用程序响应“证书,客户端密钥交换”,然后应用程序连接并运行。
话虽如此,我的问题就变成了,如何让我的C#应用程序加载并发送我从客户端获得的密钥文件?
答案 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
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