Almacenar el certificado X509 en la base de datos

Para acceder al servicio web necesito un certificado.

Genere mis certs:

openssl genrsa 1024 > private.key
openssl req -new -x509 -nodes -sha1 -days 1100 -key private.key > public.cer

luego fusionó estos dos en un certificado pfx por

openssl pkcs12 -in public.cer -inkey private.key -export -out client.pfx

luego cargué mi archivo pfx como X509Certificate2

X509Certificate2 clientCert = new X509Certificate2("cert.pfx", "password");

Ahora, me gustaría crear una tabla en la base de datos que contenga los siguientes campos:

PrivateKey NVARCHAR  
PublicCer NVARCHAR  
Password NVARCHAR  

Luego copie el contenido del archivo private.key, junto con ----- BEGIN CERTIFICATE ----- y ----- END CERTIFICATE -----, lo mismo para public.cer, y establezca la contraseña. Ahora, ¿cómo puedo obtener una instancia adecuada de X509Certificate2 leyendo estos datos de DB? En otras palabras, ¿cómo puedo generar un archivo pfx a partir del código, basado en la clave privada y el certificado?

Intentaré ser más preciso:

 string connectionString; string query; string cert;

    connectionString = ConfigurationManager.ConnectionStrings[0].ConnectionString;
    query = "SELECT clientcert FROM settings_services WHERE ID = 1";

    using (SqlConnection cn = new SqlConnection(connectionString))
    {
        SqlCommand cmd = new SqlCommand(query, cn);
        cn.Open();
        cert = (string)cmd.ExecuteScalar();
    }

    X509Certificate2  serverCert = new X509Certificate2(Encoding.UTF8.GetBytes(cert));

Este código cargará correctamente una cadena de certificado (certificado x509, comenzando con ----- BEGIN CERTIFICATE ----- y terminando ----- END CERTIFICATE -----).

Ahora necesito obtener la clave privada:

Mi clave privada está en formato RSA (----- BEGIN RSA PRIVATE KEY ---- etc ...)

Necesito cargarlo y asignarlo a serverCert para poder usar este certificado para autenticarme en el servicio web.

¿Alguna sugerencia sobre cómo hacer eso?

Respuestas a la pregunta(2)

Su respuesta a la pregunta