61 votes

Comment supprimer le mot de passe de la clé privée d'un conteneur pkcs12 ?

  1. J'ai extrait le certificat en utilisant la commande SSL/export de Chrome.
  2. Je l'ai ensuite fourni en entrée à openvpn - dans la configuration d'openvpn :
    pkcs12 "path/to/pkcs12_container"
  3. Lors de l'appel openvpn ~/openvp_config il demande un mot de passe pour la clé privée (que j'ai saisi lors de l'exportation avec Chrome) :
    Enter Private Key Password:...
  4. Je souhaite supprimer cette demande de mot de passe.

La question : comment supprimer le mot de passe de la clé privée de pkcs12 ?

C'est-à-dire créer un fichier pkcs12 qui ne nécessite pas de mot de passe.

(il semble que j'ai déjà fait cela il y a un an et que je l'ai oublié.)

0voto

Nick van Esch Points 121

Aucun d'entre eux n'a fonctionné pour moi. Finalement, je suis revenu au code dotNet qui a fonctionné la première fois.

class Script
{
    static public void Main(string[] args)
    {
                if (args.Length < 3 || args.Contains("/?"))
                {
                    MainHelp(args);
                    return;
                }
       string _infile = args[0],
                        _outfile = args[2];
                string _password = args[1], _outpassword = (args.Length > 3) ? args[3] : "";
                Console.WriteLine(String.Format("{0} -> {1} with ({2} -> {3})", _infile, _outfile, _password, _outpassword));
                System.Security.Cryptography.X509Certificates.X509Certificate2 cert = null;
                Console.WriteLine(String.Format("Load {0} with {2}", _infile, _outfile, _password, _outpassword));
                cert = new System.Security.Cryptography.X509Certificates.X509Certificate2(_infile, _password, System.Security.Cryptography.X509Certificates.X509KeyStorageFlags.Exportable);
                Console.WriteLine(String.Format("Export {1} with {3}", _infile, _outfile, _password, _outpassword));
                System.IO.File.WriteAllBytes(_outfile, cert.Export(System.Security.Cryptography.X509Certificates.X509ContentType.Pfx, _outpassword));
                Console.WriteLine(String.Format("Export complete", _infile, _outfile, _password, _outpassword));
    }

     static public void MainHelp(string[] args)
    {
            Console.WriteLine("Usage pfxremovepwd [inpfx] [inpwd] [outpfx] [optional outpwd]");
            return;
    }
}

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X