[英]Equalivent for openssl s_client -connect <hostname>:<port> in C#
当我执行openssl命令以连接特定服务器[myadda.tie.fire.glass ....哑服务器名称]时,它会提供一些输出。
openssl s_client -connect myadda.tie.fire.glass:443
它给了我一些包含如下信息的输出
另一个命令需要上述命令中的证书来向我提供有关证书的详细信息。
openssl x509 -in <Certificate_FileName.crt> -text -nout
它给我输出有关证书的信息
我想要使用某些C#类进行类似的输出。 我不确定如何解决此查询。 谁能帮我吗?
下面的代码可以帮助我检索所需的信息。
X509Certificate2 cert = null;
var client = new TcpClient(host, 443);
var certValidation = new RemoteCertificateValidationCallback(delegate (object snd, X509Certificate certificate, X509Chain chainLocal, SslPolicyErrors sslPolicyErrors)
{
//Accept every certificate, even if it's invalid
return true;
});
// Create an SSL stream and takeover client's stream
using (var sslStream = new SslStream(client.GetStream(), true, certValidation))
{
sslStream.AuthenticateAsClient(host);
var serverCertificate = sslStream.RemoteCertificate;
cert = new X509Certificate2(serverCertificate);
//Convert Raw Data to Base64String
var certBytes = cert.Export(X509ContentType.Cert);
var certAsString = Convert.ToBase64String(certBytes, Base64FormattingOptions.None);
}
这里vertAsString给我证书,而cert给我其他必需的信息。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.