内のクライアント証明書にTCPクライアント接続を作成する方法:これは素晴らしい作品私はSSL接続を確立することができ、コードと次のようにPowerShellの
$cert = dir cert:\CurrentUser\My | where {$_.Subject -like "*Alice*"}
$computerName = "google.com"
$port = "443"
$socket = New-Object Net.Sockets.TcpClient($computerName, $port)
$stream = $socket.GetStream()
$sslStream = New-Object System.Net.Security.SslStream $stream,$false
$sslStream.AuthenticateAsClient($computerName)
$sslStream
。しかし、今は認証のためのクライアント証明書を追加することはできません。 は私がちょうど
$sslStream.BeginAuthenticateAsClient($computerName,$cert,"SslProtocols",$false,"Foo" ,"Bar")
で
$sslStream.AuthenticateAsClient($computerName)
を代用する必要がありますが、私は引数が権利を取得する幸運ではなかったと思います。 SombodyはAssyncコールを解決できますか;-) これはC#コードが必要なのでしょうか?
引数は以下のとおりです。
System.IAsyncResult BeginAuthenticateAsClient(
string targetHost,
System.Security.Cryptography.X509Certificates.X509CertificateCollection clientCertificates,
System.Security.Authentication.SslProtocols enabledSslProtocols,
bool checkCertificateRevocation,
System.AsyncCallback asyncCallback,
System.Object asyncState)
私は最終的に達成したい何を一覧表示し、以降のクライアントが接続されているCipherSuiteを指定することです。 (私はWiresharkを知っています;-))
追記:私は私のtestclientでこれを有効にSystem.Net.Security.SslStreamは、.NET FW 4に依存する場合がありますことを読んだ は: REGは、Microsoft \ .netframework/VのOnlyUseLatestCLR \ HKLM \ソフトウェアを追加/ t REG_DWORD/d 1 – icnivad