作者fcapba (爱你不是两三天.......)
看板C_Sharp
标题[问题] ssl stream client authentication
时间Mon Apr 30 22:32:19 2012
请问关於c#中的ssl socket要用sslstream这个class来实现
我做client端这边,因为client/server certificate跟CA certificate都是自己签的
ValidateServerCertificate这个call back中我加入了:
if (chain.ChainStatus.Length == 1)
{
if (sslPolicyErrors == SslPolicyErrors.RemoteCertificateChainErrors
|| certificate.Subject == certificate.Issuer)
{
if (chain.ChainStatus[0].Status ==
X509ChainStatusFlags.UntrustedRoot)
{
Console.WriteLine("Server Certificate
from Self-signed root CA");
return true;
}
}
}
跳过了自己签发凭证的检查问题,server端我是要求要验证用户端(python server)
所以在c# client自己要验证自己这边卡住
try
{
sslStream.AuthenticateAsClient("servername", certs,
SslProtocols.Ssl3, true);
}
请问我要怎麽让我的client certificate可以过的了关呢?
我不知道我该怎麽设定我自己签发的CA去让程式自己检查
certs我是这样设定的,把自己签的client certtificate加入collection中:
clientCertificate = X509Certificate.CreateFromCertFile("C:/myclient.crt");
X509CertificateCollection certs = new X509CertificateCollection();
certs.Add(clientCertificate);
然後就套用AuthenticateAsClient...
麻烦知道的人可以给我点tip吗?
感谢大家~~~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.113.216.101