问题标签 [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 - Transport Layer Security in the .NET framework
I've been asked a question by the boss and actually I can't find any sort of coherent / comprehensive answer out there!
So I turn to you, the wise and all-knowing collective of StackOverflow :)
The question of the day is "Does .NET support transport layer security version 1.1 or 1.2?" Google is next to useless on this issue and the documentation out there is severely lacking.
Any help on this would be greatly appreciated.
Thank you, Clint
c# - 使用 CA 证书文件验证远程服务器 X509Certificate
我已经使用 OpenSSL 生成了一个 CA 和多个证书(由 CA 签名),并且我有一个 .NET/C# 客户端和服务器,它们都使用SslStream
它们各自有自己的证书/密钥,启用了相互身份验证并禁用了撤销。
我正在使用RemoteCertificateValidationCallback
forSslStream
来验证远程服务器的证书,我希望我可以在程序中加载 CA 的公共证书(作为文件)并使用它来验证远程证书,而不是在 Windows 证书存储中实际安装 CA . 问题是X509Chain
除非我将 CA 安装到商店中,否则不会显示任何其他内容,当我打开其中一个证书的 PEM 版本时,Windows CryptoAPI shell 也不会显示。
我的问题是,我如何仅通过使用 CA 的公共证书文件而不使用 Windows 证书存储或 WCF来验证证书是否已由我的特定 CA 签名RemoteCertificateValidationCallback
,X509Certificate
并且X509Chain
似乎没有给我任何可使用的东西?
c# - 我可以从 System.Net.Security.SslStream 获得什么级别的线程安全?
我有一个应用程序,它使用SslStream
自己的固定长度帧发送和接收数据。流是通过像这样包装NetworkStream
返回的来创建的TcpClient.GetStream()
:
因为协议是完全异步的(框架“消息”在任意时间到达,客户端可以在任意时间发送它们),我通常会生成一个负责阻塞的线程NetworkStream.Read()
,否则确保只有一个线程NetworkStream.Write(...)
在任何时候调用一度。
备注部分NetworkStream
说:
可以在 NetworkStream 类的实例上同时执行读取和写入操作,而无需同步。只要写操作有一个唯一线程,读操作有一个唯一线程,读写线程之间就不会相互干扰,也不需要同步。
但是,MSDN 文档“线程安全”部分SslStream
说:
此类型的任何公共静态(在 Visual Basic 中为 Shared)成员都是线程安全的。不保证任何实例成员都是线程安全的。
因为SslStream
和NetworkStream
不在同一个类层次结构中,所以我假设(可能是错误的) 的注释NetworkStream
不适用于SslStream
.
线程安全的最佳方法是简单地用这样的东西包装SslStream.BeginRead
/SslStream.EndRead
和SslStream.BeginWrite
/吗?SslStream.EndWrite
java - SslStream .NET 类与 Java 通信
我有一个使用 SslStream 类与客户端通信的 .NET SSL 服务器。
有谁知道这个类是否可以与其他语言(如 Java)或仅与 .NET 通信?
谢谢。
- - - 编辑 - -
有用。
c# - 为什么 sslStream.AuthenticateAsServer 不需要 UAC 和替代方案
在调整 Web 代理代码时,我注意到如果我在具有 UAC(用户访问控制)的应用程序中运行代码,我会遇到异常
这是引发异常的位置:
这是我得到的错误(使用 UAC)
第一个问题:为什么?
第二个问题:有其他选择吗?我真的很想在 UAC 中运行它(请注意 http 工作正常)
.net - C++/CLI 通过 x509 证书对软件进行身份验证
我的项目是创建一个客户端-服务器通信,它使用安全套接字层 (SSL) 安全协议对服务器和客户端进行身份验证。
我使用了 c++/cli 语言、SslStream 类,并创建了证书来验证双方的主机(客户端/服务器)。
它工作正常,但现在的问题是客户端软件必须安装在很多机器上,所以我无法为每台机器创建证书。
如何使用 x509 证书对软件(不是主机)进行身份验证?
.net - SSL over TCP 使用证书对 Windows 服务进行身份验证
我有一台服务器和三个客户端,其中 Windows 服务以本地系统权限运行。客户端和服务器使用 SSL over TCP 和证书进行相互身份验证(我使用 SSLStream 类 C++\CLI http://msdn.microsoft.com/en-us/library/system.net.security.sslstream(v=vs .90).aspx#Y1124 )
问题是我需要三个证书(每个客户端一个),因为我正在验证主机。现在我想验证Windows 服务而不是主机,这样我就可以为每个主机分发相同的证书。
有谁知道怎么做?
--- EDIT 1 ---- 给你一个我想做的例子。在每个 Microsoft Office 副本中都部署了一个证书,用于通过加密/身份验证通道与 Microsoft 服务器进行通信。
- 解决了 -
正如乔恩所说,我的问题是 SslStream 类执行包含主机名的标准验证。我提供了一个自定义 RemoteCertificateValidationCallback,现在它可以工作了。
ssl - 如何在 Powershell 中使用客户端证书创建 TCP 客户端连接
使用以下代码,我可以建立 SSL 连接:
这工作正常。但现在我不想为身份验证添加客户端证书。认为我只需要替换
和
但我并不幸运地得到了正确的论点。Sombody 可以解决 Assync 调用吗 ;-) 也许我需要一些 C# 代码?!?
论据是:
我最终想要实现的是列出并稍后指定客户端连接到的 CipherSuites。(我可以使用我知道的 Wireshark ;-))
c# - 在 C# 中通过 SSLStream 发送 GET 命令?
我正在编写一个 http 自动化框架,我的问题是与经过身份验证的 http安全连接进行通信。在做了一些研究之后,我发现了C# 中的SslStream对象,它可以轻松地与我现有的客户端架构集成。问题是; 尽管能够验证我与给定 Web 服务器的连接,但任何“GET [website] HTTP/1.1”命令似乎只返回标题而不是实际网页。
我有一种感觉,我没有正确地形成我的网络请求,但我真的不知道。我整个上午都在做研究,在这个特定问题上找不到很多资源。这是我项目中的代码示例:
本质上,我的代码结果只会返回带有一些标头信息的“HTTP/1.1 200 OK”。除了标头之外,不会返回任何 HTML 或任何其他内容。
根据要求,这里有更多信息:
出于测试目的,我正在尝试访问 google android 开发者门户(因为它使用 SSL)。这只是加载登录页面,除了页面加载请求之外,此时甚至没有传输任何信息。这是我的确切要求。
这是服务器响应:
感谢您花时间看我的问题,我很感激!如果您想从我这里获得更多信息,我很乐意提供。因为我相信我的错误可能是一个愚蠢的格式问题,所以我认为不需要更多信息。
再次,谢谢!
c# - BeginAuthenticateAsClient 在新的 AppDomain 中不起作用
我正在尝试SslStream
在新的AppDomain
. 但是,BeginAuthenticateAsClient
在流上运行该方法会导致抛出异常。
异常状态:
Assembly System 中的 System.Net.AsyncProtocolRequest 类型,Version=2.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089 未标记为可序列化。
编辑:调用后抛出异常BeginAuthenticateAsClient()
。SelectLocalCertificate()
回调方法被调用,但不是ValidateRemoteCertificate()
。
新的AppDomain
和SslWrapper
创建如下:
相反,使用同步AuthenticateAsClient()
可以成功,在默认的AppDomain
.
我假设异常与 AsyncCallback 方法有关。但是,此方法不应该越过 AppDomain 边界,那么为什么我会得到异常呢?更重要的是,能避免吗?
我正在使用 .NET 2,WinXP 64 位。
编辑:这也是 .NET 4 中的一个问题。