Question

Backstory: j'ai un certificat PKCS # 12 (p12) avec un chiffrement symétrique (mot de passe) que j'ai utilisé OpenSSL pour convertir en PEM; je vois que le texte que je lis contient une section BEGIN / END CERTIFICATE ainsi que BEGIN / END RSA PRIVATE KEY . La classe .NET Framework X509Certificate ne prend en charge que la classe "ASN.1 DER". J'ai donc utilisé OpenSSL pour convertir le fichier PEM en fichier DER. Malheureusement, il semble que cela n'inclue pas la clé privée, ce dont j'ai besoin pour établir une connexion SSL avec SslStream & amp; TcpClient .

X509CertificateCollection certsFromFile = new X509CertificateCollection();
X509Certificate2 cert = new X509Certificate2("my.der.crt");
if (!cert.HasPrivateKey)
    throw new Exception("No private key");
certsFromFile.Add(cert);

TcpClient tcpclient = new TcpClient(hostname, port);
SslStream sslstream = new SslStream(tcpclient.GetStream(), false,
    null, null);
sslstream.AuthenticateAsClient(hostname, certsFromFile,
    SslProtocols.Ssl3, false);
sslstream.Close();
tcpclient.Close();

Comment puis-je utiliser ce fichier PEM et le transformer en un DER tout en conservant les informations de clé privée afin que je puisse l'utiliser dans .NET pour la signature?

Était-ce utile?

La solution

Oups, je suis en retard! On dirait que X509Certificate2 peut lire les fichiers PKCS # 12, aucune conversion n'est donc nécessaire.

Autres conseils

Les certificats et les clés sont généralement stockés séparément. Coupez le fichier PEM en deux fichiers, l’un avec le certificat et l’autre avec la clé. Vous pouvez ensuite utiliser la boîte à outils openssl pour convertir chaque fichier séparément en un fichier DER.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top