如何在 SSLStream 的 AuthenticateAsServer() 中提供证书链?

发布于 2024-12-04 19:14:22 字数 332 浏览 1 评论 0原文

我正在使用标准 SSLStream 在 C# 中实现 SSL 服务器。

到目前为止一切都很好,但是 - AuthenticateAsServer 仅接受单个证书作为参数,而我必须提供完整的链(其中 3 个)。

我已经使用所有证书构建了 PKCS12 结构(在 Mono.Security 的帮助下),然后调用 new X509Certificate2(pkcs12.GetBytes()) ,但尽管如此,只向客户端提供了一个。

那么,问题是——如何做到这一点?

谢谢!

PS:我需要一个可移植的解决方案,它可以在 Windows 上的 Mono 和 .NET 中运行。

I'am implementing a SSL server in C#, using standard SSLStream.

Everything is fine so far, but - AuthenticateAsServer accepts only single certificate as parameter, while I have to provide the complete chain (3 of them).

I've built PKCS12 struct with all certificates (with help of Mono.Security), then call new X509Certificate2(pkcs12.GetBytes()), but nevertheless, only one is presented to the client.

So, the question is - how this could be done?

Thanks!

PS: I need a portable solution, which will work both in Mono and .NET on Windows.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

花间憩 2024-12-11 19:14:22

您的设置是正确的。 Web 服务器仅使用一个带有 SslStream(或其他任何内容)的证书。

证书可能缺少一些信息:服务器证书的Authority Information Access 扩展应指向将下载中间证书的 URI。

是否缺少此信息?

Your setup is correct. The web server uses only one certificate with the SslStream (or anything else).

The certificate might be missing some information : The Authority Information Access extension of your server certificate shall point to the URI where the intermediary certificate will be downloaded.

Is this information missing ?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文