48 votes

"La clé privée est manquante ou invalide lors de l'importation d'un certificat" dans Google Chrome

Je veux tester mon application web sur https localhost. Malheureusement, il semble impossible de supprimer l'avertissement de certificat dans chrome. Tout d'abord, j'ai généré le certificat comme ceci :

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/localhost-selfsigned.key -out /etc/ssl/certs/localhost-selfsigned.crt

Ensuite, j'ai voulu l'ajouter à Chrome, paramètres > avancés > gérer les certificats -> importer. J'essaie d'importer le fichier .crt généré précédemment et tout ce que j'obtiens est ceci :

Erreur d'importation de certificat : La clé privée de ce certificat client est manquante ou invalide.

J'ai cherché sur Google, mais je n'ai rien trouvé d'utile.

J'ai également essayé d'autoriser le drapeau allow-insecure-localhost et d'ouvrir chrome avec --ignore-certificate-errors mais il affiche toujours l'avertissement et le https cassé

Existe-t-il d'autres moyens ou est-ce que je fais quelque chose de mal avec le certificat ?

67voto

Erik Points 1206

Je pense que ce que vous essayez de faire, c'est de l'ajouter au mauvais magasin de certificats. Si vous essayez de l'ajouter sous "Vos certificats", vous allez avoir du mal. Cet onglet sert à ajouter des certificats d'identité ; ce que votre navigateur offre au serveur pour établir l'identité du navigateur.

Ce que je pense que vous voulez faire, d'après votre description, c'est que votre navigateur fasse confiance au certificat auto-signé qui sera sur votre serveur. Si c'est le cas, vous devez l'ajouter dans votre onglet "Autorités".

3voto

giantas Points 131

Ce qui a fonctionné pour moi, c'est

  • mise en place d'une AC
  • signer mon propre certificat à l'aide de cette autorité de certification, puis
  • l'importation de la clé de l'autorité de certification dans Chrome (Autorités).

J'ai obtenu la procédure à partir de cette réponse sur SO.

Puisque mon problème spécifique concernait la prise en charge des sous-domaines à plusieurs niveaux, je vais l'examiner sous cet angle.

les sous-domaines :

  • bar.fooz.mydomain.com
  • foo.fooz.mydomain.com
  1. Devenir une autorité de certification

    export CA=myca

    you probably want to have this in its own directory

    mdkir /etc/ssl/$CA && cd /etc/ssl/$CA

    generate private key

    openssl genrsa -des3 -out $CA.key 2048

    generate root certificate

    openssl req -x509 -new -nodes -key $CA.key -sha256 -days 825 -out $CA.pem

  2. Créer des certificats signés par une autorité de certification

    export NAME=fooz.mydomain.com

    if CA files were in a separate directory

    cd .. && mkdir /etc/ssl/$NAME && cd /etc/ssl/$NAME

    generate private key

    openssl genrsa -out $NAME.key 2048

    Create a certificate-signing request

    Once prompted, set FQDN to the value of $NAME

    openssl req -new -key $NAME.key -out $NAME.csr

    Create a config file for the extensions

    $NAME.ext cat <<-EOF authorityKeyIdentifier=keyid,issuer basicConstraints=CA:FALSE keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment subjectAltName = @alt_names [alt_names] DNS.1 = $NAME # Be sure to include the domain name here because Common Name is not so commonly honoured by itself

    Optionally, add additional domains (I've added a subdomain here)

    DNS.2 = foo.$NAME DNS.3 = bar.$NAME IP.1 = 192.168.0.13 # (Optional, but probably important), add an IP address (if the connection which you have planned requires it) EOF

    Create the signed certificate

    openssl x509 -req -in $NAME.csr -CA $CA.pem -CAkey $CA.key -CAcreateserial -out $NAME.crt -days 825 -sha256 -extfile $NAME.ext

  3. Télécharger le $CA.pem et l'importer en tant qu'autorité dans votre navigateur :

    1. Chrome settings (Settings > Privacy and Security > Security > Manage certificates > Authorities > Import). Check Trust this certificate for identifying websites
    2. Firefox: Preferences > Privacy and Security > Certificates > View Certificates > Authorities > import. Check Trust this CA to identify websites
  4. Redémarrez votre navigateur (Firefox a fonctionné sans qu'il soit nécessaire de le redémarrer).

2voto

Prateek Jain Points 121

Chrome attend un fichier au format PKCS12 qui est utilisé pour stocker le certificat, tout certificat intermédiaire et la clé privée dans un seul fichier chiffrable. .p12 y .pfx des extensions.

Pour en générer un, utilisez la commande suivante

openssl pkcs12 -export -inkey ./sample.key -in ./sample.crt -out ./sample.p12

Cette commande demandera un mot de passe que nous devrons retenir et utiliser lors de l'importation des données générées. p12 dans chrome.

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