問題タブ [sslstream]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - .NET フレームワークのトランスポート層セキュリティ
私は上司から質問されましたが、実際には、首尾一貫した包括的な回答を見つけることができません!
だから私は、StackOverflowの賢明で全知の集合体であるあなたに目を向けます:)
今日の質問は、「.NET はトランスポート層セキュリティ バージョン 1.1 または 1.2 をサポートしていますか?」です。この問題に関して Google はほぼ役に立たず、そこにあるドキュメントはひどく不足しています。
これに関するヘルプは大歓迎です。
ありがとう、クリント
c# - CA 証明書ファイルを使用してリモート サーバー X509Certificate を確認する
OpenSSL を使用して CA と複数の証明書 (CA によって署名された) を生成し、.NET/C# クライアントとサーバーの両方を使用SslStream
して、それぞれ独自の証明書/キーを使用し、相互認証を有効にし、失効を無効にしました。
RemoteCertificateValidationCallback
リモートサーバーの証明書を検証するためにforを使用しSslStream
ていますが、実際に CA を Windows 証明書ストアにインストールするのではなく、CA の公開証明書を (ファイルとして) プログラムにロードし、それを使用してリモート証明書を検証できることを望んでいました。 . 問題はX509Chain
、CA をストアにインストールしない限り、他に何も表示されないことです。証明書の 1 つの PEM バージョンを開くと、Windows CryptoAPI シェルも表示されます。
私の質問は、Windows 証明書ストアまたは WCF を使用せずにCARemoteCertificateValidationCallback
の公開証明書ファイルを使用するだけで、証明書が特定の CA によって署名されていることを確認するにはどうすればよいですか?X509Certificate
X509Chain
c# - What level of thread-safety can I expect from System.Net.Security.SslStream?
I have an application which uses SslStream
to send and receive data with its own fixed-length framing. The stream is created by wrapping the NetworkStream
returned from TcpClient.GetStream()
like so:
Because the protocol is fully asynchronous (framed "messages" arrive at arbitrary times and the client is allowed to send them at arbitrary times), I would normally spawn a thread responsible for blocking on NetworkStream.Read()
and otherwise ensure that there is only one thread calling NetworkStream.Write(...)
at any one time.
The Remarks section for NetworkStream
says:
Read and write operations can be performed simultaneously on an instance of the NetworkStream class without the need for synchronization. As long as there is one unique thread for the write operations and one unique thread for the read operations, there will be no cross-interference between read and write threads and no synchronization is required.
However, the MSDN documentation "Thread Safety" section for SslStream
says:
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
Because SslStream
and NetworkStream
aren't in the same class hierarchy, I have assumed (perhaps incorrectly) that the remarks for NetworkStream
don't apply to SslStream
.
Is the best approach for thread safety to simply wrap SslStream.BeginRead
/ SslStream.EndRead
and SslStream.BeginWrite
/ SslStream.EndWrite
with something like this?
java - SslStream .NET クラスは Java と通信します
SslStream クラスを使用してクライアントと通信する .NET SSL サーバーがあります。
このクラスが Java などの他の言語のソケットと通信できるのか、それとも .NET とのみ通信できるのか、誰にもわかりませんか?
ありがとう。
- - - 編集 - -
できます。
c# - sslStream.AuthenticateAsServer が UAC と代替手段を必要としないのはなぜですか
Web プロキシ コードを微調整しているときに、UAC (ユーザー アクセス制御) を使用してアプリでコードを実行すると例外が発生することに気付きました
例外がスローされる場所は次のとおりです。
ここに私が得るエラーがあります(UACで)
最初の質問:なぜですか?
2 番目の質問:代替手段はありますか? 私は本当にこれをUACで実行したいと思っています(httpは正常に動作することに注意してください)
.net - C++/CLI x509 証明書によるソフトウェア認証
私のプロジェクトは、Secure Socket Layer (SSL) セキュリティ プロトコルを使用してサーバーとクライアントを認証するクライアント サーバー通信を作成することです。
私は c++/cli 言語、SslStream クラスを使用し、両方の当事者 (クライアント/サーバー)のホストを認証するための証明書を作成しました。
正常に動作しますが、問題は、クライアント ソフトウェアを多数のマシンにインストールする必要があるため、マシンごとに証明書を作成できないことです。
x509 証明書を使用して (ホストではなく)ソフトウェアを認証するにはどうすればよいですか?
.net - SSLoverTCP証明書を使用してWindowsサービスを認証する
1つのサーバーと3つのクライアントがあり、ローカルシステム特権でWindowsサービスが実行されています。クライアントとサーバーは、SSL over TCPと証明書を使用して相互認証されます(SSLStreamクラスC ++ \ CLI http://msdn.microsoft.com/en-us/library/system.net.security.sslstream(v=vs )を使用しています.90).aspx#Y1124)
問題は、ホストを認証しているため、3つの証明書(クライアントごとに1つ)が必要なことです。ここで、ホストではなくWindowsサービスを認証して、すべてのホストに同じ証明書を配布できるようにします。
誰もがそれを行うことができる方法を知っていますか?
---編集1----私がやりたいことの例をあげましょう。すべてのMicrosoftOfficeコピーには、暗号化/認証されたチャネルを介してMicrosoftサーバーと通信するために使用される証明書が展開されます。
-解決済み-
Jonが言ったように、私の問題は、SslStreamクラスがホスト名を含む標準の検証を実行することでした。カスタムRemoteCertificateValidationCallbackを提供しましたが、これで機能します。
ssl - Powershellでクライアント証明書を使用してTCPクライアント接続を作成する方法
次のコードを使用して、SSL接続を確立できます。
これは問題なく動作します。しかし、今は認証用のクライアント証明書を追加したくありません。私はただ置き換える必要があると思います
と
しかし、私は議論を正しくすることができなかった。SombodyはAssyncCallsを解決できますか;-)多分私はこれのためにいくつかのC#コードが必要ですか?!?
引数は次のとおりです。
私が最終的に達成したいのは、クライアントが接続されている暗号スイートをリストし、後で指定することです。(私が知っているWiresharkを使用できます;-))
c# - C#でSSLStreamを介してGETコマンドを送信しますか?
http自動化フレームワークを作成していますが、問題は認証されたhttpで保護された接続との通信です。調査を行った後、既存のクライアントアーキテクチャと簡単に統合できるC#のSslStreamオブジェクトを発見しました。問題は; 特定のWebサーバーとの接続を認証できるにもかかわらず、「GET [website] HTTP / 1.1」コマンドはヘッダーのみを返し、実際のWebページは返さないようです。
Webリクエストを適切に作成していないように感じますが、本当にわかりません。私は午前中ずっと調査を行っていますが、この特定の問題に関する多くのリソースを見つけることができません。これが私のプロジェクトのコードサンプルです。
基本的に、私のコードの結果は、いくつかのヘッダー情報を含む「HTTP /1.1200OK」を返すだけです。ヘッダー以外のHTMLなどは返されません。
要求に応じて、ここにいくつかの詳細情報があります:
テストの目的で、私はgoogle android開発者ポータルにアクセスしようとしています(SSLを使用しているため)。これは単にログインページをロードするためのものであり、ページのロード要求以外の情報はこの時点では送信されていません。これが私の正確な要求です。
これはサーバーの応答です。
私の質問をご覧いただきありがとうございます、ありがとうございます!私からの詳細情報が必要な場合は、喜んでお知らせします。私の間違いはおそらくばかげたフォーマットの問題だと思うので、これ以上の情報が必要になるとは思いませんでした。
繰り返しになりますが、ありがとうございます。
c# - BeginAuthenticateAsClient が新しい AppDomain で機能しない
SslStream
新しい にオブジェクトを作成しようとしていますAppDomain
。ただし、BeginAuthenticateAsClient
ストリームでメソッドを実行すると、例外がスローされます。
例外は次のように述べています。
Assembly System、Version=2.0.0.0、Culture=neutral、PublicKeyToken=b77a5c561934e089 の System.Net.AsyncProtocolRequest 型は、シリアル化可能としてマークされていません。
編集:を呼び出した後に例外がスローされBeginAuthenticateAsClient()
ます。SelectLocalCertificate()
コールバック メソッドが呼び出されますが、呼び出されませValidateRemoteCertificate()
ん。
新しいAppDomain
とSslWrapper
は次のように作成されます。
AuthenticateAsClient()
デフォルトで非同期コードを実行する場合と同様に、代わりに同期を使用すると正常に動作しますAppDomain
。
例外は AsyncCallback メソッドに関連していると思います。ただし、このメソッドは AppDomain の境界を越えてはならないのに、なぜ例外が発生するのでしょうか? さらに重要なことに、それを回避することは可能ですか?
.NET 2、WinXP 64bit を使用しています。
編集:これは .NET 4 の問題でもあります。