Question Comment enregistrer un certificat SSL de serveur distant localement en tant que fichier


Je dois télécharger un certificat SSL sur un serveur distant (pas HTTPS, mais la négociation SSL doit être identique à celle de Google Chrome / IE / wget et boucler tous les échecs de vérification des certificats) et ajouter le certificat comme approuvé dans Windows. magasin de certificats car je ne suis pas en mesure de faire en sorte que mes informaticiens me donnent le certificat de CA.

c'est pour les communications de bureau, donc je ne peux pas vraiment utiliser le client réel pour obtenir le cert.

Comment puis-je faire cela, j'ai Windows 7 et une pile de Linux à portée de main, donc tout outil / langage de script est bien.


263
2018-01-18 07:43


origine


Pour obtenir le certificat d'un serveur de courrier, voir security.stackexchange.com/questions/70528/... - That Brazilian Guy


Réponses:


Si vous avez accès à OpenSSL, essayez

openssl s_client -connect {HOSTNAME}:{PORT} -showcerts

remplacer {NOM HÔTE} et {PORT} par toutes vos valeurs.


251
2017-08-17 07:20



Je préfère cette option car je n'ai pas besoin d'ouvrir une interface graphique, et je peux le faire via SSH depuis nos serveurs. - bramp
De plus, il fonctionne pour des protocoles autres que HTTP. - matt
La solution d'elec3647 automatise complètement l'extraction du PEM dans un pipeline shell. - phs
443 est le port par défaut pour HTTPS. - Flimm
J'ai eu besoin -servername option pour obtenir le certificat d'hôte virtuel. gist.github.com/Artistan/5219484efb2fe51cd064175b3d0d5971 - Artistan


Une méthode rapide pour extraire et télécharger le certificat consisterait à exécuter la commande suivante qui transfère la sortie du fichier -showcerts vers la commande ssl x509, ce qui supprime tout simplement tout. Par exemple:

openssl s_client -showcerts -connect server.edu:443 </dev/null 2>/dev/null|openssl x509 -outform PEM >mycertfile.pem

Pour utiliser le certificat, avec wget,

wget https:/server.edu:443/somepage --ca-certificate=mycertfile.pem

183
2017-09-05 13:47



J'ai essayé ceci (sur un autre site Web) - mais on s'attendait à ce que la chaîne complète de certificats: il semble que cela ne ramène que le premier dans la chaîne - est-ce à prévoir? - monojohnny
Cela ne fonctionne pas pour moi: impossible de charger le certificat 27262: erreur: 0906D06C: Routines PEM: PEM_read_bio: pas de ligne de démarrage: /SourceCache/OpenSSL098/OpenSSL098-50/src/crypto/pem/pem_lib.c: 648: En attente: TRUSTED CERTIFICAT - Janusz
Je suis d'accord avec monojohnny, cela ne vous donne pas la chaîne complète. - Michael Munsey
En retard mais @monojohnny: openssl s_client -showcerts affiche tous les certs de la chaîne reçue (si la connexion réussit), mais passe au travers openssl x509 prend seulement le premier et jette le reste. Pour tous les utiliser à la place ...| sed -n '/^-----BEGIN CERT/,/^-----END CERT/p' ou ...| awk '/^-----BEGIN CERT/,/^-----END CERT/' Vous pouvez également utiliser un peu plus compliqué awk pour mettre chaque cert dans un fichier séparé qui les rend plus faciles à utiliser avec openssl et quelques autres outils. - dave_thompson_085
Pour utiliser le certificat, avec wget, wget https:/server.edu:443/somepage --ca-certificate=mycertfile.pem - MUY Belgium


Pour être honnête, je n'ai jamais essayé auparavant (je n'ai jamais eu besoin de le faire), cependant, je viens d'essayer dans Firefox et cela semble fonctionner pour économiser:

  1. Cliquez sur l'icône du certificat SSL en haut / Cadenas en bas.
  2. Cliquez sur View Certificate
  3. Clique sur le Details Languette
  4. Choisissez le certificat que vous voulez de la hiérarchie [non encerclé dans l'image]
  5. Cliquez sur Export

alt text


111
2018-01-18 07:56



Bon à savoir - mais pour ma curiosité, pouvez-vous expliquer un peu plus ce que vous essayez d'accomplir? Je n'ai jamais eu besoin d'exporter un certificat client SSL et je suis très curieux de savoir pourquoi vous auriez réellement besoin de le faire ... - William Hilsum
C'est un certificat de serveur, pas un certificat client. La principale raison pour exporter une clé privée et un certificat client consiste à conserver une sauvegarde ou à vous authentifier à l'aide d'un autre navigateur ou ordinateur. - gbroiles
@gbroiles - lisez la question, il a utilisé la mauvaise terminologie, mais cela a résolu son problème. - William Hilsum
à droite, et j'ai répondu à votre question - pourquoi quelqu'un voudrait-il enregistrer un certificat client? "SSL client certificate" était votre terme, pas le sien. - gbroiles
Ne ressemble pas à un moyen de faire cela dans Chrome, non?! - fatuhoku


Exportation d'un certificat à l'aide du navigateur Chrome

  1. Connectez-vous au site Web en utilisant SSL (https: // peu importe)

2. Cliquez sur le symbole de la serrure puis cliquez sur Détails

  1. Depuis la version 56 de Chrome, procédez comme suit: Accédez au menu à trois points -> Outils supplémentaires -> Outils pour développeurs, puis cliquez sur l'onglet Sécurité. Cela vous donnera un Vue d'ensemble de la sécurité avec un Voir le certificat bouton.

  2. Clique sur le Voir le certificat bouton.

    Une fenêtre modale s'ouvrira. Il a deux volets. La première affiche la hiérarchie de confiance du certificat du site (le dernier répertorié), le ou les certificats intermédiaires et le certificat racine (le plus élevé).

    Le deuxième volet, plus grand, affiche les détails de l'un des certificats.

    Il peut y avoir zéro ou plusieurs certificats intermédiaires.

    Notez que le certificat racine a une icône bordée d'or. Les autres ont une bordure bleue.

    Voir la capture d'écran ci-dessous.

  3. Pour exporter un certificat:

    1. Cliquez d'abord sur l'icône du certificat dans la hiérarchie de confiance.
    2. Le certificat sera affiché dans la partie principale du modal.
    3. Cliquez sur la grande icône du certificat dans la partie principale du modal. Traîne l'icône sur votre bureau. Chrome copiera ensuite le certificat sur votre bureau.

enter image description here


40
2017-12-26 18:45



J'ai dû faire glisser l'icône sur un éditeur de texte, le bureau ne fonctionnait pas pour moi. - Cory Klein
Pour Chrome sous Windows, après avoir cliqué sur "Afficher le certificat", le modal est différent de Mac. Cliquez sur l'onglet Détails, puis sur Copier dans un fichier ... Choisissez ensuite le format et le nom de fichier, ce qui est simple. - PolyTekPatrick
Lorsque j'utilise Chrome v63 sous Mac OS, le fichier texte que je tire en faisant glisser le certificat est lisible par l'homme, mais pas dans un format structuré que je puisse convertir en un format lisible par ordinateur tel que X.509 .crt. - Jim DeLaHunt
aucune différence si l'ouverture de la barre d'adresse ou de cet onglet dev, et ne peut toujours pas télécharger crt ... - user25


C'est réponse de gbroiles, mais je voulais souligner que le projet cURL a une page avec quelques détails supplémentaires en utilisant openssl pour enregistrer le certificat SSL du serveur distant:

  • openssl s_client -connect {HOSTNAME}: {PORT} | fichier journal
  • Type QUIT et appuyez sur la touche Entrée / Retour.
  • Le certificat sera répertorié entre les marqueurs "BEGIN CERTIFICATE" et "END CERTIFICATE".
  • Si vous souhaitez voir les données dans le certificat, vous pouvez utiliser:

    openssl x509 -inform PEM -in certfile -text -out certdata

    certfile est le certificat extrait de logfile. Regarder dans certdata.


16
2017-10-18 22:10





automatique

-servername était nécessaire pour que je puisse obtenir le bon certificat de l'hôte virtuel sur notre serveur.

openssl s_client -showcerts -connect host.name.com:443 -servername host.name.com </dev/null | sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p' > host.name.com.pem

vous pouvez également convertir en un certificat pour ordinateur de bureau

openssl x509 -inform PEM -in host.name.com.pem -outform DER -out host.name.com.cer

la dernière partie consiste à l'ajouter à vos certs, pas sur les fenêtres
pour mac keychain j'ai utilisé, devrait être similaire ...

sudo security add-trusted-cert -d -r trustRoot -k /Library/Keychains/System.keychain host.name.com.cer


4
2018-01-25 15:59



gist.github.com/Artistan/5219484efb2fe51cd064175b3d0d5971 - Artistan


Cela donnera uniquement les résultats contenant les certificats

echo QUIT | \
openssl s_client -showcerts -connect hostname:port | \
awk '/-----BEGIN CERTIFICATE-----/ {p=1}; p; /-----END CERTIFICATE-----/ {p=0}' "

1
2018-05-23 01:20