2011-01-09 24 views
9

He estado revisando artículo tras artículo sobre creación de certificado x509, firma, etc., pero aún no he encontrado una solución a mi problema, preguntándome si alguien puede indicarme la dirección correcta porque estoy completamente confundido en este punto. Aquí es lo que estoy tratando de hacer:x509 C# ejemplos?

Para la aplicación cliente:

  1. generar un/par de claves pública y privada
  2. tomar las llaves como byte [] y almacenarlos en el sistema de archivos.
  3. Generar un certificado X509
  4. Generar una solicitud de firma

Para la aplicación de servidor:

  1. generar un par de claves pública/privada
  2. tomar las llaves como byte [] y almacenarlos en el sistema de archivos.
  3. crear un certificado autofirmado X509
  4. certificados de cliente sesión
  5. Validar certificados de cliente como de ser firmado por certificado autofirmado en el punto 3 anterior.

Necesito hacer esto toda la programación en .Net y sin .exe de externos como makecert.exe o openssl.exe - Necesito usar una biblioteca en proceso, etc.

tengo trozos y las piezas se resolvieron utilizando varias librerías como Bouncy Castle, .Net Crypto, openssl, etc., pero siempre toco una barricada con falta de documentación o sin poder acceder a los pares de claves como byte [] para poder persistir, etc. O bien estoy haciendo esto mucho más difícil de lo que es, o hay una gran falta de documentación, o ambas cosas.

Me imagino que alguien tiene que haber hecho esto antes y realmente agradecería algo de ayuda. Estoy abierto a todas las sugerencias, ¡gracias!

.. y PKIBlackbox no es una opción - que cuesta demasiado :(

+0

http://stackoverflow.com/questions/1228439/x509-guide-tutorial-in-c –

+0

PKIBlackbox es el único que sé que admite PKCS # 10 (solicitudes de certificado) en .NET. Y tiene soporte, muestras y documentación –

Respuesta

3

Puede usar el Bouncycastle C# library. La documentación no es buena, pero creo que no es demasiado difícil trabajar con ella. Primero puede ir al Javadocs para obtener la versión java de la biblioteca; la versión java y C# son muy similares. En segundo lugar, mira el código fuente, ya que es relativamente fácil de leer.

La clase que desea es Org.BouncyCastle.X509.X509V3CertificateGenerator. Hay algunos ejemplos de Java en la red que puede usar como guía para crear una versión de C#. Here es uno sencillo y directo.

Finalmente, Bouncycastle tiene una clase muy útil Org.BouncyCastle.Security.DotNetUtilities que ayuda a mapear objetos Bouncycastle y objetos .NET. Uno de tales pares de métodos es ToX509Certificate() y FromX509Certificate(). Además, tenga en cuenta que la clase .NET X509Certificate tiene los métodos Import() y Export().

En conjunto, esto debería ser suficiente para que pueda resolver su problema.

0

he hecho la creación de certificados X.509 y almacenar en el almacén de claves de Windows que no sean makecert hay muy poca documentación disponible y buena. makecert no es una opción viable en la mayoría de las circunstancias. Encontré las API de pluralsight muy útiles ya que admiten la generación de certificados y el almacenamiento del certificado en el almacén de claves de Windows. Prácticamente no hay documentación (por supuesto), pero si la buscas Encontrará algunos blogs que muestran cómo usarlo. Aquí hay algunos enlaces.

http://www.pluralsight-training.net/community/blogs/keith/archive/2009/01/22/create-self-signed-x-509-certificates-in-a-flash-with-self-cert.aspx

http://mikehadlow.blogspot.com/2010/02/creating-x509-certificates-with.html

Cuestiones relacionadas