我从哪里获得x509证书?

时间:2012-07-13 19:21:39

标签: c# networking ssl ssl-certificate

我目前正在尝试基于SslStream类创建聊天。 我正在浏览msdn链接:click here

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

P.S:我在google上搜索一下这个主题但是没有找到任何有用的信息后来到这里。

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

谢谢。

4 个答案:

答案 0 :(得分:6)

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

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

答案 1 :(得分: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。

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

MakeCert - Is it possible to change the key size?http://www.mazecomputer.com/sxs/help/shared.htm

openssl支持许多类型,不仅仅是RSA,但也许你不需要它们。

答案 2 :(得分:4)

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

答案 3 :(得分:1)

为了清楚起见,请仔细阅读this。您可以使用Symantec的Verisign服务签署您的公钥。绝对不便宜。对于测试,您可以使用虚拟CA创建自己的证书。