Per accedere al servizio web ho bisogno di un certificato.Conservare il certificato X509 nella banca dati
ho generato certificati personali:
openssl genrsa 1024 > private.key
openssl req -new -x509 -nodes -sha1 -days 1100 -key private.key > public.cer
poi fuse questi due in un certificato PFX da
openssl pkcs12 -in public.cer -inkey private.key -export -out client.pfx
poi caricato il mio file pfx come X509Certificate2
X509Certificate2 clientCert = new X509Certificate2("cert.pfx", "password");
ora, vorrei piace creare una tabella nel database che contenga i seguenti campi:
Quindi copiare il contenuto dal file private.key, insieme a ----- INIZIO CERTIFICATO ----- e ----- CERTIFICATO DI FINE -----, lo stesso per public.cer e impostare la password. Ora, come posso ottenere un'istanza corretta di X509Certificate2 leggendo questi dati dal DB? In altre parole, come posso generare un file pfx dal codice, basato su chiave privata e certificato?
cercherò di essere più precisi:
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));
Questo codice correttamente caricare una stringa di certificato (certificato x509, a partire ----- BEGIN CERTIFICATE ----- e termina --- --END CERTIFICATO -----).
Ora ho bisogno di ottenere la chiave privata:
La mia chiave privata è in formato RSA (----- BEGIN chiave privata RSA ---- ecc ...)
ho bisogno di caricarlo e assegnarlo a serverCert, per poter utilizzare questo certificato per l'autenticazione sul servizio web.
Qualche suggerimento su come farlo?
La risposta a questo problema si trova qui. http://www.codeproject.com/KB/security/CertificatesToDBandBack.aspx Riguarda –
Correlati: https://stackoverflow.com/questions/893757 – explunit