es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Crear X509Certificate2 con clave pública en .Net Core

Quiero cifrar un token usando jwe de acuerdo a este artículo, en el artículo él creó el

X509EncryptingCredentials así:

var tokenDescriptor = new SecurityTokenDescriptor
{
   Audience = "you",
   Issuer = "me",
   Subject = new ClaimsIdentity(new List<Claim> {new Claim("sub", "scott")}),
   EncryptingCredentials = new X509EncryptingCredentials(new X509Certificate2("key_public.cer")) //aquí quiero decir
};

Para ello, él creó un new X509Certificate2("key_public.cer")

¿Cómo puedo crear key_public.cer para poder pasarlo a X509Certificate2?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para crear un certificado de clave pública (key_public.cer) que se utilizará con X509EncryptingCredentials, primero deberá generar una clave privada, luego utilizarla para generar una solicitud de firma de certificado (CSR) y finalmente hacer que esa CSR sea firmada por una autoridad de certificación (CA) para obtener el certificado de clave pública.

    Aquí están los pasos básicos a seguir:

    1. Genere una clave privada utilizando una herramienta como OpenSSL o Keychain Access en una Mac. Por ejemplo, utilizando OpenSSL:
      openssl genpkey -algorithm RSA -out private_key.pem -aes256
      

      Esto generará una clave privada y la encriptará con el algoritmo AES-256. Se le pedirá que ingrese una contraseña para la clave.

    2. Genere una solicitud de firma de certificado (CSR) utilizando la clave privada. Por ejemplo, utilizando OpenSSL:

      openssl req -new -key private_key.pem -out csr.pem
      

      Esto generará un archivo CSR (csr.pem) que contiene la clave pública y alguna información de identificación (por ejemplo, nombre, organización) que se utilizará para firmar el certificado.

    3. Envíe la CSR a una autoridad de certificación (CA) para obtener el certificado de clave pública. Hay muchas CAs comerciales y gratuitas disponibles, como DigiCert, Let’s Encrypt y Comodo. Siga sus instrucciones para enviar la CSR y obtener el certificado.

    4. Una vez que tenga el certificado, guárdelo como key_public.cer y úselo en el código como se muestra en el artículo:

      EncryptingCredentials = new X509EncryptingCredentials(new X509Certificate2("key_public.cer"))
      

      Tenga en cuenta que key_public.cer debe estar en el formato de certificado X.509, que normalmente se codifica en Base64 y tiene la extensión .cer.

Comments are closed.