9

我目前正在尝试基于 SslStream 类创建聊天。我正在浏览那个 msdn 链接:点击这里

我意识到我需要获得 X509Certificate 来建立该任务。但我真的不知道我怎样才能得到一个?我知道有些是花钱的,但没有免费的?

PS:我在谷歌搜索该主题后来到这里,但没有找到任何有用的信息。

所以我的问题是:我在哪里可以获得 x509 证书?

谢谢你。

4

4 回答 4

7

makecert您可以使用该工具创建证书。

或者,如果您只对加密流量感兴趣,而不对其进行签名,并且您控制客户端和服务器,则只需使用CryptoStream.

于 2012-07-13T19:41:49.933 回答
5

您可以使用 openssl 生成您自己的并自己签名,但请记住,如果客户端尝试验证它,并且客户端我通常指的是浏览器,因为这是它们最常见的用途,尽管不是唯一的,它们将无法。

我知道有些是花钱的,但没有免费的?

基本上,您所支付的是 CA,证书颁发机构对其进行签名,因此当客户去验证您与 CA 的关系时,它将通过。

openssl: http://www.openssl.org/
这是我通常使用的命令openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout server.key -out server.pem

server.pem是您的证书,server.key也是您的私钥。

假设您可能已经安装了 .NET SDK,makecert 可能是一种更好/更简单的方法,因为您需要构建 openssl。

仍然我去了他们的文档,但我找不到如何设置密钥大小,虽然显然默认值是1028并且我认为 using RSA,但我确实找到了这个: makecert -pe -ss MY -$ individual -n "CN=your name here" -len 2048 -r

来自MakeCert - 是否可以更改密钥大小?http://www.mazecomputer.com/sxs/help/shared.htm

openssl 不仅支持 RSA,还支持许多类型,也许您不需要它们。

于 2012-07-13T19:43:28.040 回答
4

这些家伙http://www.cacert.org/多年来一直在赠送免费证书。

于 2013-01-06T02:06:34.730 回答
1

为了清楚起见,请通读内容。您可以使用 Symantec 的Verisign服务签署您的公钥。它绝对不便宜。对于测试,您可以使用虚拟 CA 制作自己的证书。

于 2012-07-13T19:48:17.583 回答