我一直在逐步填写关于x509证书创建,签名等的文章,但我还没有找到解决问题的方法 - 想知道是否有人可以指出我正确的方向,因为我彻底搞糊涂了在此刻。这就是我想要做的事情:
对于客户端应用:
对于服务器应用程序:
我需要在.Net中以编程方式执行此操作,不需要外部.exe,如makecert.exe或openssl.exe - 我需要使用进程内库等。
我使用Bouncy Castle,.Net Crypto,openssl等各种库来制作零碎的东西 - 但是我总是遇到一个障碍,要么缺少文档,要么无法以字节[]的形式访问密钥对所以我可以坚持他们,等等。要么我比这更难,要么就是严重缺乏文件 - 或者两者兼而有之。
我认为有人必须先做过这件事,我真的很感激一些帮助 - 我对所有建议都持开放态度 - 谢谢!
..而且PKIBlackbox不是一个选项 - 它的成本太高了:(
答案 0 :(得分:3)
您可以使用Bouncycastle C# library。文档不好,但我相信它并不太难。你可以先去Javadocs获取java版的库; java和C#版本非常相似。其次,查看源代码,因为它相对容易阅读。
您想要的课程是Org.BouncyCastle.X509.X509V3CertificateGenerator
。网上有一些java示例,您可以将其用作创建C#版本的指南。 Here是一个简单直截了当的。
最后,Bouncycastle有一个非常有用的类Org.BouncyCastle.Security.DotNetUtilities
,它有助于在Bouncycastle对象和.NET对象之间进行映射。一对这样的方法是ToX509Certificate()
和FromX509Certificate()
。另请注意,.NET X509Certificate类具有Import()
和Export()
方法。
这些应该足以让您解决问题。
答案 1 :(得分:0)
我已经创建了X.509证书并存储到windows密钥库中。除了makecert之外,几乎没有很好的文档,在大多数情况下,makecert不是一个可行的选择。我发现pluralsight API非常有用,因为它们支持证书生成以及将证书存储到Windows密钥库中。几乎没有文档(当然)但是如果你搜索它,你会发现一些博客显示如何使用它。这是一些链接。
http://mikehadlow.blogspot.com/2010/02/creating-x509-certificates-with.html