ind*_*dra 3 asp.net security ssl-certificate http-headers
为了解决SSL终止负载均衡器的问题(它不会将客户端证书转发给应用服务器),我们的ISP已经配置了我们的环境,使得客户端证书在HTTP报头中转发到真实服务器(如X- CLIENT-CERT).
我将使用映射到他们已经签发的证书的序列号的PIN来验证客户端.但是如何从自定义标头获取证书?
我假设你知道你可以使用获取证书数据
String s = Request.Headers["X-Client-Cert"];
Run Code Online (Sandbox Code Playgroud)
现在的问题是证书添加到标题的格式.我认为它是在Base64中编码的.
byte[] certdata = Convert.FromBase64String(s);
Run Code Online (Sandbox Code Playgroud)
然后,您可以从中创建证书对象:
X509Certificate cert = new X509Certificate(certdata);
Run Code Online (Sandbox Code Playgroud)
根据负载均衡器是否检查客户端证书的有效性(以及是否已由正确的根CA签署),您必须自行检查证书的有效性.
之后您可以通过读取序列号 cert.GetSerialNumber();
| 归档时间: |
|
| 查看次数: |
8509 次 |
| 最近记录: |