17 Παραδείγματα εντολών Keytool που πρέπει να γνωρίζετε ως Sysadmin και προγραμματιστής

Το Keytool είναι ένα βοηθητικό πρόγραμμα γραμμής εντολών που σας επιτρέπει να διαχειρίζεστε/αποθηκεύετε κρυπτογραφικά κλειδιά και πιστοποιητικά.

Εάν το σύστημά σας έχει εγκαταστήσει Java, μπορείτε να χρησιμοποιήσετε την εντολή keytool για να εισαγάγετε ένα πιστοποιητικό CA, να καταχωρίσετε πιστοποιητικά, να δημιουργήσετε αυτο-υπογεγραμμένα πιστοποιητικά, να αποθηκεύσετε φράσεις πρόσβασης και δημόσια/ιδιωτικά κλειδιά και να κάνετε πολλά άλλα πράγματα.

Ταραγμένος? Μην ανησυχείτε. Θα το εξηγήσω με πιο απλά λόγια καθώς διαβάζετε.

Σημειώστε ότι χρησιμοποιώ το Linux για να δοκιμάσω τις εντολές και να σας εξηγήσω λίγο περισσότερα σχετικά με αυτό με παραδείγματα.

Μπορείτε να χρησιμοποιήσετε εντολές Keytool και σε Windows και macOS.

Πίνακας περιεχομένων

Τι είναι η εντολή Keytool;

Είναι ένα βοηθητικό πρόγραμμα διαχείρισης κλειδιών και πιστοποιητικών. Σας επιτρέπει να αποθηκεύετε ζεύγη ιδιωτικών/δημόσιων κλειδιών, τα οποία είναι συνήθως για την επαλήθευση/επαλήθευση της πρόσβασης στις υπηρεσίες.

Λαμβάνοντας υπόψη τον τίτλο αυτού του άρθρου, μπορεί κανείς να υποθέσει ότι η εντολή χρησιμοποιείται κυρίως από διαχειριστές συστήματος και προγραμματιστές.

Ως επί το πλείστον, ναι, αλλά ένας χρήστης μπορεί να γίνει δημιουργικός με την εντολή keytool για να αποθηκεύει φράσεις πρόσβασης και μυστικά κλειδιά για σκοπούς ελέγχου ταυτότητας, κρυπτογράφησης και αποκρυπτογράφησης. Επομένως, εάν είστε περίεργοι, θα πρέπει να το δοκιμάσετε στο σύστημά σας.

  Πώς να δημιουργήσετε ένα προσαρμοσμένο φόντο ζουμ

Εάν είστε νέοι στην έννοια των κρυπτογραφικών κλειδιών, ίσως θέλετε να ανατρέξετε στο άρθρο μας για την κρυπτογράφηση δεδομένων προτού δοκιμάσετε τις εντολές του keytool.

Επιπλέον, η εξέταση των παραδειγμάτων εντολών OpenSSL μπορεί επίσης να σας δώσει κάποια ιδέα για το πώς είναι διαφορετικό και τι μπορείτε να κάνετε με οποιοδήποτε από αυτά.

Δημιουργήστε ένα αυτο-υπογεγραμμένο πιστοποιητικό

keytool -genkeypair -alias <alias> -keypass <keypass> -validity <validity> -storepass <storepass>

Σε αντίθεση με ένα πιστοποιητικό SSL που αγοράζετε, ένα πιστοποιητικό αυτο-υπογεγραμμένο χρησιμοποιείται μόνο για σκοπούς ανάπτυξης/δοκιμών για χρήση ασφαλούς σύνδεσης.

Μπορείτε να δημιουργήσετε ένα χρησιμοποιώντας τη σύνταξη εντολών keytool που αναφέρεται παραπάνω. Για παράδειγμα, δείτε πώς φαίνεται:

keytool -genkeypair -alias grtechpc.org -keypass passforkeystore -validity 365 -storepass passforkeystore

Μπορείτε να χρησιμοποιήσετε οποιοδήποτε όνομα για το ψευδώνυμο. Χρησιμοποιώ το grtechpc.org ως κείμενο κράτησης θέσης. Μπορείτε να προσαρμόσετε την εγκυρότητα και να καθορίσετε έναν κωδικό πρόσβασης για το Keystore αντικαθιστώντας το “passforkeystore” στην παραπάνω εντολή.

Σημειώστε ότι μόνο ένας κωδικός πρόσβασης υποστηρίζεται για τα KeyStores PKCS12. Ωστόσο, είναι ένας βολικός τύπος Keystore που δεν είναι συγκεκριμένος για Java.

Εάν χρειάζεστε δύο διαφορετικούς κωδικούς πρόσβασης για το Keystore και το πιστοποιητικό σας, ίσως θέλετε να πείτε ρητά στην εντολή keytool να χρησιμοποιήσει άλλη διεπαφή.

Μπορείτε να διαβάσετε περισσότερα για αυτό στην επίσημη τεκμηρίωσή του.

Μόλις προχωρήσετε στη δημιουργία, θα ζητήσει πρόσθετες λεπτομέρειες για την αυθεντικότητα. Δείτε πώς πρέπει να μοιάζει:

What is your first and last name?
  [Unknown]:  Ankush
What is the name of your organizational unit?
  [Unknown]:  grtechpc.org
What is the name of your organization?
  [Unknown]:  grtechpc.org
What is the name of your City or Locality?
  [Unknown]:  Bhubaneswar
What is the name of your State or Province?
  [Unknown]:  Odisha
What is the two-letter country code for this unit?
  [Unknown]:  91
Is CN=Ankush, OU=grtechpc.org, O=grtechpc.org, L=Bhubaneswar, ST=Odisha, C=91 correct?
  [no]:  yes

Δημιουργήστε ένα Java Keystore και ένα ζεύγος κλειδιών

keytool -genkeypair -keyalg RSA -keysize 2048 -keystore keystore.jks -alias geekflarejava -validity 3650

Δημιουργήστε ένα Java Keystore και εισαγάγετε ένα πιστοποιητικό

Βεβαιωθείτε ότι έχετε ένα έγκυρο πιστοποιητικό ή έχετε δημιουργήσει ένα νωρίτερα. Μόλις ολοκληρωθεί, μπορείτε να το εισαγάγετε και να δημιουργήσετε ένα Java Keystore.

keytool -importcert -file test.crt -keystore truststore.jks -alias grtechpc.org

Δημιουργήστε ένα ζεύγος κλειδιών στον προεπιλεγμένο χώρο αποθήκευσης κλειδιών με το θέμα

Μπορείτε να δημιουργήσετε γρήγορα ένα ζεύγος κλειδιών (ας πούμε με το όνομα “ca”) χρησιμοποιώντας την ακόλουθη εντολή:

keytool -alias ca -dname CN=CA -genkeypair

Δημιουργήστε μια αλυσίδα υπογεγραμμένων πιστοποιητικών

Ας υποθέσουμε ότι έχετε δημιουργήσει ζεύγη κλειδιών ca, και ca1. Μπορείτε να δημιουργήσετε μια αλυσίδα υπογεγραμμένων πιστοποιητικών όπου το ca θα υπογράψει το ca1 με τις ακόλουθες εντολές:

keytool -alias ca1 -certreq
keytool -alias ca -gencert -ext san=dns:ca1
keytool -alias ca1 -importcert

Μπορείτε να ολοκληρώσετε την αλυσίδα με δύο ακόμη ζεύγη κλειδιών ca1 και ca2, όπου το ca1 θα υπογράψει ca2.

  Πώς να αλλάξετε τα περιθώρια στα Έγγραφα Google

Εισαγωγή Πιστοποιητικού

Εάν θέλετε να εισαγάγετε ένα πιστοποιητικό από ένα διαθέσιμο αρχείο, μπορείτε να κάνετε τα εξής:

keystool -import -alias grtechpc.org -file geekflareserver.cer

Δημιουργήστε ένα αίτημα υπογραφής πιστοποιητικού (CSR) για το υπάρχον Keystore

Λαμβάνοντας υπόψη ότι έχετε ήδη δημιουργήσει ένα Keystore, μπορείτε να δημιουργήσετε ένα CSR.

keytool -certreq -keyalg rsa -keystore keystore.jks -alias server -file grtechpc.org.csr

Λίστα πιστοποιητικών που είναι αποθηκευμένα στο Java Keystore

Ένας χώρος αποθήκευσης κλειδιών μπορεί να έχει πολλαπλές καταχωρήσεις πιστοποιητικών. Υποθέτοντας ότι ελέγχουμε τη λίστα των πιστοποιητικών στη βάση δεδομένων “keystore.jks”, ορίστε τι πρέπει να πληκτρολογήσουμε:

keytool -v -list -keystore keystore.jks

Η έξοδος για αυτό θα μοιάζει με αυτό:

keytool -v -list -keystore keystore.jks
Enter keystore password:  
Keystore type: PKCS12
Keystore provider: SUN

Your keystore contains 2 entries

Alias name: geekflarecert
Creation date: 16-Nov-2022
Entry type: PrivateKeyEntry
Certificate chain length: 1
Certificate[1]:
Owner: CN=Ankush, OU=Geek, O=grtechpc.org, L=Bhubaneswar, ST=od, C=91
Issuer: CN=Ankush, OU=Geek, O=grtechpc.org, L=Bhubaneswar, ST=od, C=91
Serial number: a0b9a99
Valid from: Wed Nov 16 09:42:37 IST 2022 until: Sat Nov 13 09:42:37 IST 2032
Certificate fingerprints:
	 SHA1: 23:7C:65:A7:A6:84:18:F8:45:04:92:DF:D4:BB:0F:91:6D:A5:C5:BE
	 SHA256: C0:25:ED:B8:CF:1A:E6:E1:C5:75:A8:10:8F:CD:BE:42:26:96:9C:9A:FA:74:65:07:71:06:9A:2C:F5:80:FE:7F
Signature algorithm name: SHA256withRSA
Subject Public Key Algorithm: 2048-bit RSA key
Version: 3

Ελέγξτε τα περιεχόμενα ενός ενιαίου πιστοποιητικού

Λαμβάνοντας υπόψη ότι έχετε ήδη δημιουργήσει ένα πιστοποιητικό, μπορείτε να ελέγξετε περισσότερα σχετικά με αυτό χρησιμοποιώντας τα ακόλουθα:

keytool -v -printcert -file server.crt

Προβολή πιστοποιητικών σε ένα Java Keystore

Μπορείτε να παραθέσετε όλα τα πιστοποιητικά από μια βάση δεδομένων Keystore. Δείτε πώς φαίνεται η εντολή:

keytool -v -list -keystore keystore.jks

Προβολή Keystore χρησιμοποιώντας ψευδώνυμο και Keystore

Εάν θέλετε να ελέγξετε ένα Keystore χρησιμοποιώντας το ψευδώνυμό του που ορίσατε κατά τη δημιουργία του, πληκτρολογήστε τα εξής:

keytool -v -list -keystore keystore.jks -alias geekflareserver

Λίστα πιστοποιητικών στο KeyStore

Εάν θέλετε να ελέγξετε τα πιστοποιητικά που είναι αποθηκευμένα στο προεπιλεγμένο Keystore, χρησιμοποιήστε την εντολή:

keytool -list -storepass passforkeystore

Πρέπει να αντικαταστήσετε το “passforkeystore” με τον κωδικό πρόσβασης που έχετε ορίσει.

  Πού είναι το αντίγραφο ασφαλείας του iPhone ή του iPad μου σε υπολογιστή ή Mac;

Προβολή πληροφοριών πιστοποιητικού

Εάν πρέπει να ελέγξετε τις λεπτομέρειες για ένα μεμονωμένο πιστοποιητικό, μπορείτε να χρησιμοποιήσετε το ψευδώνυμό του χωρίς να καθορίσετε τη βάση δεδομένων keystone.

Δείτε πώς φαίνεται:

keytool -list -v -alias grtechpc.org -storepass passforkeystore

Προβολή Πιστοποιητικού σε Μορφή PEM

Το PEM είναι μια από τις πιο κοινές μορφές για πιστοποιητικά και κρυπτογραφικά κλειδιά. Εάν θέλετε να ελέγξετε ένα πιστοποιητικό με το PEM, πληκτρολογήστε τα εξής:

keytool -v -printcert -file grtechpc.org.crt -rfc

Αλλάξτε έναν κωδικό πρόσβασης Java Keystore

Εάν έχετε ήδη δημιουργήσει έναν κωδικό πρόσβασης για το Java Keystore, μπορείτε να αλλάξετε τον κωδικό πρόσβασης χρησιμοποιώντας την εντολή:

keytool -delete -alias grtechpc.org -keystore keystore.jks

Διαγράψτε ένα Πιστοποιητικό από το Java Keystore

Μπορείτε να καθορίσετε το Java Keystore και το ψευδώνυμό του για να το διαγράψετε. Για παράδειγμα:

keytool -delete -alias grtechpc.org -keystore keystore.jks

Εξερευνήστε την εντολή και λάβετε βοήθεια

Η εντολή έχει πολλά ορίσματα και επεκτάσεις για να γίνουν πολλά πράγματα. Ανάλογα με την περίπτωση χρήσης σας, μπορεί να χρειαστεί ή να μην χρειαστεί να τα χρησιμοποιήσετε όλα.

Έτσι, εάν θέλετε να βουτήξετε βαθιά για τις επιλογές εντολών, μπορείτε πάντα να πληκτρολογήσετε:

keytool -help

Σε κάθε περίπτωση, εάν χρησιμοποιείτε τερματικό Linux, θα συνιστούσα να διαβάσετε τη σελίδα man (εγχειρίδιο) με αυτήν την εντολή:

man keytool

Με την εντολή man, μπορείτε να λάβετε όλες τις λεπτομέρειες που χρειάζεστε σχετικά με την εντολή keytool.

Οπότε, κρατήστε την υπερδύναμή σας για να μάθετε ό,τι μπορείτε για αυτό!

Τυλίγοντας

Η διαδρομή των αρχείων και άλλων επιλογών προσαρμογής μπορεί να είναι λίγο διαφορετική από την πλατφόρμα που χρησιμοποιείτε. Μπορείτε επίσης να ανατρέξετε στην τεκμηρίωση της Oracle για τις τυποποιημένες επιλογές.

Το Keytool είναι ένα εξαιρετικό εργαλείο για μια σειρά εργασιών. Δοκιμάστε το και δείτε τι μπορείτε να κάνετε με αυτό!

Μπορείτε επίσης να εξερευνήσετε ορισμένες εντολές Linux για να διατηρήσετε και να διατηρήσετε τη βέλτιστη λειτουργία των συστημάτων.