我是SSL身份验证的新手,我需要使用SSL在信任边界上验证两个架构组件(我可以控制这两个组件).我想我需要双向SSL身份验证,服务器和客户端都有证书.
证书可以自签名吗? (即,由供应商签名,这不会首先使用SSL取消?或者我是否需要第三方验证服务以确保证书的身份?)
握手如何在服务器和客户端的公钥和私钥方面工作?
我将不得不在IIS中配置服务器以使用cetificate,并使用请求发送客户端证书(最有可能通过使用WCF进行配置?),但是还有其他任务我必须做才能使其工作吗?
最佳答案 使用客户端和服务器证书的双向认证将起作用.您也可以使用自签名证书.但是,如果两个证书都是自签名的,则您需要绕过客户端和服务器上的证书验证,因为它们未由受信任的机构签名.
在安装证书方面,应按如下方式进行:
服务器端
> ServerCert.pfx安装到LocalMachine – >个人商店
> ClientCert.cer安装到本地机器 – >受信任的人存储
客户端
> ClientCert.pfx安装到当前用户 – >个人商店
> ServerCert.cer安装到本地机器 – >值得信赖的商店
您需要将ServerCert.cer文件发送到客户端,客户端需要将ClientCert.cer发送给您.
现在,如果您使用自签名证书并且您的客户端正在访问您的服务,那么他将需要绕过证书验证. C#中的示例代码如下:
System.Net.ServicePointManager.ServerCertificateValidationCallback = (sender, cert, chain, error) =>
{
return true;
};
希望有所帮助.
注意:从安全角度来看,不建议在生产环境中使用自签名证书.