GNU/Linux >> Tutoriels Linux >  >> Linux

Utilisation d'openssl pour obtenir le certificat d'un serveur

Bien que je sois d'accord avec la réponse d'Ari (et que je l'aie votée :), je devais faire une étape supplémentaire pour le faire fonctionner avec Java sous Windows (où il devait être déployé) :

openssl s_client -showcerts -connect www.example.com:443 < /dev/null | openssl x509 -outform DER > derp.der

Avant d'ajouter le openssl x509 -outform DER conversion, je recevais une erreur de keytool sous Windows se plaignant du format du certificat. L'importation du fichier .der a bien fonctionné.


Il s'avère qu'il y a plus de complexité ici :j'avais besoin de fournir beaucoup plus de détails pour que cela fonctionne. Je pense que cela a quelque chose à voir avec le fait que c'est une connexion qui nécessite une authentification client, et le hankshake avait besoin de plus d'informations pour continuer jusqu'à l'étape où les certificats ont été vidé.

Voici ma commande de travail :

openssl s_client -connect host:port -key our_private_key.pem -showcerts \
                 -cert our_server-signed_cert.pem

J'espère que c'est un coup de pouce dans la bonne direction pour tous ceux qui auraient besoin de plus d'informations.


Une ligne pour extraire le certificat d'un serveur distant au format PEM, cette fois en utilisant sed :

openssl s_client -connect www.google.com:443 2>/dev/null </dev/null |  sed -ne '/-BEGIN CERTIFICATE-/,/-END CERTIFICATE-/p'

Avec SNI

Si le serveur distant utilise SNI (c'est-à-dire partage plusieurs hôtes SSL sur une seule adresse IP), vous devrez envoyer le nom d'hôte correct afin d'obtenir le bon certificat.

openssl s_client -showcerts -servername www.example.com -connect www.example.com:443 </dev/null

Sans SNI

Si le serveur distant n'utilise pas SNI, vous pouvez ignorer -servername paramètre :

openssl s_client -showcerts -connect www.example.com:443 </dev/null


Pour afficher tous les détails du certificat d'un site, vous pouvez également utiliser cette chaîne de commandes :

$ echo | \
    openssl s_client -servername www.example.com -connect www.example.com:443 2>/dev/null | \
    openssl x509 -text

Linux
  1. Utilisation de Stratis pour gérer le stockage Linux à partir de la ligne de commande

  2. Let's Encrypt :Obtenez un certificat SSL gratuit avec Certbot

  3. Erreur OpenCA Impossible de charger le certificat à partir de la base de données

  4. Connectez-vous à Linux à partir de Mac OS X en utilisant Terminal

  5. Utilisation des journaux du serveur

Comment installer la dernière version d'OpenSSL à partir de la source sous Linux

Apprenez à connaître votre système (en utilisant la ligne de commande)

Comment générer des certificats SSL auto-signés à l'aide d'OpenSSL

Comment obtenir les meilleures performances du serveur Nginx

RabbitMQ - Récupère les messages d'une file d'attente à l'aide de curl

Comment puis-je obtenir des messages de journal du serveur LAMP sur Ubuntu 10.04 ?