web-dev-qa-db-fra.com

importer un certificat auto-signé dans redhat

Comment puis-je importer un certificat auto-signé dans Red-Hat Linux.

Je ne suis pas un expert en matière de certificats et j'ai du mal à trouver la bonne réponse par googler, car je ne connais pas la différence entre un .cer, .crt ou un .pem. Cela dit, ce que je voudrais faire ne devrait pas être de la science des fusées (dans Windows, je peux le faire en quelques clics dans mon navigateur), je veux me connecter à un serveur qui utilise un certificat auto-signé. Par exemple, en utilisant wget, sans avoir à utiliser l'option --no-check-certificate. Pour que cela fonctionne, je devrai ajouter le certificat auto-signé du serveur à ma boîte RedHat. J'ai découvert que les certificats résident dans/etc/pki/tls. Mais je ne sais pas quelles actions je devrais effectuer pour faire fonctionner wget sans me plaindre.

Je peux obtenir le certificat SSL du serveur en utilisant:

openssl s_client -connect serveur: 443

Le certificat est entre "BEGIN CERTIFICATE et END CERTIFICATE" Je ne sais pas de quel type de certificat il s'agit. Ensuite, je devrai le mettre dans le répertoire/etc/pki/tls/certs et appliquer une sauce Sects OpenSL que je ne connais pas. Pouvez-vous m'aider?

18
atomcoffee

Je ne connais pas de moyen d'importer un certificat de site spécifique dans la base de données de confiance d'OpenSSL (j'aimerais bien!), Mais comme vous parlez d'un certificat auto-signé, nous pouvons l'aborder en important votre certificat en tant que nouveau certificat de confiance CA cert. Attention cependant: vous allez également faire confiance à tous les sites signés par ce certificat.

Trouvez et téléchargez le cert

Vous pouvez télécharger un certificat auto-signé directement depuis un site rapidement avec:

openssl s_client -connect server:443 <<<'' | openssl x509 -out /path/file

Notez que vous devez seulement le faire dans le cas d'un certificat auto-signé (comme mentionné dans la question d'origine ). Si le certificat est signé par une autre autorité de certification, vous ne pouvez pas exécuter ce qui précède; à la place, vous devrez trouver le certificat CA approprié et le télécharger.

Importez le certificat et rendez-le fiable

La commande update-ca-trust A été ajoutée dans Fedora 19 et RHEL6 via RHEA-2013-1596 . Si vous l'avez, vos étapes sont extrêmement simples (mais nécessitent root/Sudo):

  1. copiez le certificat CA dans /etc/pki/ca-trust/source/anchors/
  2. update-ca-trust enable; update-ca-trust extract
  3. (Notez que la commande enable n'est pas nécessaire dans RHEL7 et Fedora moderne)

Si vous n'avez pas update-ca-trust, c'est juste un peu plus difficile (et nécessite toujours root/Sudo):

  1. cd /etc/pki/tls/certs
  2. copiez le certificat CA ici
  3. ln -sv YOURCERT $(openssl x509 -in YOURCERT -noout -hash).0

PS: La question mentionnait Red Hat, mais pour quiconque cherche à faire de même avec autre chose que Fedora/RHEL, wiki.cacert.org/FAQ/ImportRootCert pourrait être utile.

25
rsaw

Vous pouvez faire ce que vous voulez faire en suivant ces étapes:

  1. Placez le certificat SSL (y compris les lignes "----- BEGIN CERTIFICATE -----" et "----- END CERTIFICATE -----") dans un fichier du répertoire "/etc/pki/tls/certs "- par exemple, appelons-le" myserver.pem ".
  2. Calculez le hachage de certificat de ce certificat en exécutant

    openssl x509 -noout -hash -in /etc/pki/tls/certs/myserver.pem

    à titre d'exemple, supposons que la valeur de hachage est "1a2b3c4d".

  3. Créez un lien symbolique dans le répertoire certs en fonction de cette valeur de hachage, comme ceci:

    ln -s /etc/pki/tls/certs/myserver.pem /etc/pki/tls/certs/1a2b3c4d.0

    Je suppose qu'il n'y a pas d'autres certificats déjà dans ce répertoire qui hachent à la même valeur de hachage - s'il y a déjà un "1a2b3c4d.0", alors faites votre lien "1a2b3c4d.1" à la place (ou s'il y a déjà un " .1 ", faites le vôtre" .2 ", etc ...)

wget et les autres outils qui utilisent SSL reconnaîtront alors ce certificat comme valide. Il peut y avoir un moyen plus simple de le faire en utilisant une interface graphique mais fonctionne pour le faire via la ligne de commande.

5
patbarron