21 Παραδείγματα OpenSSL για να σας βοηθήσουν στον πραγματικό κόσμο

Δημιουργία, διαχείριση και μετατροπή πιστοποιητικών SSL με το OpenSSL

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

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

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

Μερικές από τις συντομογραφίες σχετίζονται με πιστοποιητικά.

  • SSL – Secure Socket Layer
  • CSR – Αίτημα υπογραφής πιστοποιητικού
  • TLS – Ασφάλεια επιπέδου μεταφοράς
  • PEM – Αλληλογραφία ενισχυμένης απορρήτου
  • DER – Διακεκριμένοι κανόνες κωδικοποίησης
  • SHA – Ασφαλής αλγόριθμος κατακερματισμού
  • PKCS – Πρότυπα κρυπτογραφίας δημόσιου κλειδιού

Σημείωση: Μάθημα λειτουργίας SSL/TLS θα ήταν χρήσιμο εάν δεν είστε εξοικειωμένοι με τους όρους.

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

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

openssl req -out grtechpc.org.csr -newkey rsa:2048 -nodes -keyout grtechpc.org.key

Η παραπάνω εντολή θα δημιουργήσει CSR και ένα αρχείο κλειδιού RSA 2048-bit. Εάν σκοπεύετε να χρησιμοποιήσετε αυτό το πιστοποιητικό σε Apache ή Nginx, τότε πρέπει να στείλετε αυτό το αρχείο CSR στην αρχή έκδοσης πιστοποιητικών και θα σας δώσει ένα υπογεγραμμένο πιστοποιητικό κυρίως σε μορφή der ή pem που πρέπει να ρυθμίσετε στον διακομιστή ιστού Apache ή Nginx .

  Πώς να δημιουργήσετε προσαρμοσμένες συντομεύσεις πληκτρολογίου για οποιαδήποτε εφαρμογή Mac

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

openssl req -x509 -sha256 -nodes -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem

Η παραπάνω εντολή θα δημιουργήσει ένα αυτο-υπογεγραμμένο πιστοποιητικό και αρχείο κλειδιού με RSA 2048-bit. Έχω συμπεριλάβει επίσης το sha256 καθώς θεωρείται πιο ασφαλές αυτή τη στιγμή.

Συμβουλή: από προεπιλογή, θα δημιουργήσει ένα αυτο-υπογεγραμμένο πιστοποιητικό που ισχύει μόνο για ένα μήνα, επομένως μπορείτε να εξετάσετε το ενδεχόμενο να ορίσετε την παράμετρο –days για να παρατείνετε την ισχύ.

Π.χ.: να έχει αυτο-υπογεγραμμένη ισχύ για δύο χρόνια.

openssl req -x509 -sha256 -nodes -days 730 -newkey rsa:2048 -keyout gfselfsigned.key -out gfcert.pem

Επαληθεύστε το αρχείο CSR

openssl req -noout -text -in grtechpc.org.csr

Η επαλήθευση είναι απαραίτητη για να διασφαλίσετε ότι αποστέλλετε την ΕΚΕ στην αρχή έκδοσης με τα απαιτούμενα στοιχεία.

Δημιουργία ιδιωτικού κλειδιού RSA

openssl genrsa -out private.key 2048

Εάν χρειάζεται απλώς να δημιουργήσετε ιδιωτικό κλειδί RSA, μπορείτε να χρησιμοποιήσετε την παραπάνω εντολή. Έχω συμπεριλάβει το 2048 για ισχυρότερη κρυπτογράφηση.

Αφαιρέστε τη φράση πρόσβασης από το κλειδί

openssl rsa -in certkey.key -out nopassphrase.key

Εάν χρησιμοποιείτε φράση πρόσβασης στο αρχείο κλειδιού και χρησιμοποιείτε Apache, τότε κάθε φορά που ξεκινάτε, πρέπει να εισάγετε τον κωδικό πρόσβασης. Εάν είστε ενοχλημένοι με την εισαγωγή κωδικού πρόσβασης, τότε μπορείτε να χρησιμοποιήσετε το παραπάνω openssl rsa -in grtechpc.org.key -check για να αφαιρέσετε το κλειδί φράσης πρόσβασης από ένα υπάρχον κλειδί.

Επαλήθευση ιδιωτικού κλειδιού

openssl rsa -in certkey.key –check

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

  Διαφορά μεταξύ σφάλματος, ελαττώματος, σφάλματος, αποτυχίας και σφάλματος στη δοκιμή λογισμικού

Επαλήθευση αρχείου πιστοποιητικού

openssl x509 -in certfile.pem -text –noout

Εάν θέλετε να επικυρώσετε δεδομένα πιστοποιητικού όπως CN, OU κ.λπ., μπορείτε να χρησιμοποιήσετε μια παραπάνω εντολή που θα σας δώσει λεπτομέρειες πιστοποιητικού.

Επαληθεύστε την αρχή που υπογράφει το πιστοποιητικό

openssl x509 -in certfile.pem -noout -issuer -issuer_hash

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

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

openssl x509 -noout -hash -in bestflare.pem

Μετατροπή DER σε μορφή PEM

openssl x509 –inform der –in sslcert.der –out sslcert.pem

Συνήθως, η αρχή έκδοσης πιστοποιητικών θα σας δώσει πιστοποιητικό SSL σε μορφή .der και αν χρειαστεί να τα χρησιμοποιήσετε σε μορφή apache ή .pem, τότε η παραπάνω εντολή θα σας βοηθήσει.

Μετατροπή PEM σε μορφή DER

openssl x509 –outform der –in sslcert.pem –out sslcert.der

Σε περίπτωση που χρειαστεί να αλλάξετε τη μορφή .pem σε .der

Μετατρέψτε το πιστοποιητικό και το ιδιωτικό κλειδί σε μορφή PKCS#12

openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem

Εάν χρειάζεται να χρησιμοποιήσετε ένα πιστοποιητικό με την εφαρμογή java ή με οποιαδήποτε άλλη που δέχεται μόνο τη μορφή PKCS#12, μπορείτε να χρησιμοποιήσετε την παραπάνω εντολή, η οποία θα δημιουργήσει ένα μόνο pfx που περιέχει πιστοποιητικό και αρχείο κλειδιού.

Συμβουλή: μπορείτε επίσης να συμπεριλάβετε πιστοποιητικό αλυσίδας περνώντας το –chain όπως παρακάτω.

openssl pkcs12 –export –out sslcert.pfx –inkey key.pem –in sslcert.pem -chain cacert.pem

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

openssl req –out certificate.csr –key existing.key –new

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

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

openssl pkcs12 –info –nodes –in cert.p12

Το PKCS12 είναι μια δυαδική μορφή, επομένως δεν θα μπορείτε να προβάλετε το περιεχόμενο στο σημειωματάριο ή σε άλλο πρόγραμμα επεξεργασίας. Η παραπάνω εντολή θα σας βοηθήσει να δείτε τα περιεχόμενα του αρχείου PKCS12.

  Πώς να εγκαταστήσετε το θέμα Hooli GTK

Μετατροπή μορφής PKCS12 σε πιστοποιητικό PEM

openssl pkcs12 –in cert.p12 –out cert.pem

Εάν θέλετε να χρησιμοποιήσετε την υπάρχουσα μορφή pkcs12 με Apache ή απλώς σε μορφή pem, αυτό θα είναι χρήσιμο.

Δοκιμάστε το πιστοποιητικό SSL συγκεκριμένης διεύθυνσης URL

openssl s_client -connect yoururl.com:443 –showcerts

Το χρησιμοποιώ αρκετά συχνά για να επικυρώσω το πιστοποιητικό SSL μιας συγκεκριμένης διεύθυνσης URL από τον διακομιστή. Αυτό είναι πολύ βολικό για την επικύρωση του πρωτοκόλλου, του κρυπτογράφησης και των στοιχείων του πιστοποιητικού.

Μάθετε την έκδοση OpenSSL

openssl version

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

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

openssl x509 -noout -in certificate.pem -dates

Χρήσιμο εάν σκοπεύετε να βάλετε κάποια παρακολούθηση για να ελέγξετε την εγκυρότητα. Θα σας δείξει μια ημερομηνία στη σύνταξη notBefore και notAfter. Μετά από αυτό, θα πρέπει να επιβεβαιώσετε εάν ένα πιστοποιητικό έχει λήξει ή αν εξακολουθεί να ισχύει.

Πρώην:

[[email protected] opt]# openssl x509 -noout -in bestflare.pem -dates
notBefore=Jul 4 14:02:45 2015 GMT
notAfter=Aug 4 09:46:42 2015 GMT
[[email protected] opt]#

Ελέγξτε την Ημερομηνία Λήξης Πιστοποιητικού της διεύθυνσης URL SSL

openssl s_client -connect secureurl.com:443 2>/dev/null | openssl x509 -noout –enddate

Ένα άλλο χρήσιμο εάν σκοπεύετε να παρακολουθείτε εξ αποστάσεως την ημερομηνία λήξης του πιστοποιητικού SSL ή συγκεκριμένη διεύθυνση URL.

Πρώην:

[[email protected] opt]# openssl s_client -connect google.com:443 2>/dev/null | openssl x509 -noout -enddate

notAfter=Dec 8 00:00:00 2015 GMT

Ελέγξτε εάν το SSL V2 ή V3 είναι αποδεκτό στη διεύθυνση URL

Για να ελέγξετε το SSL V2

openssl s_client -connect secureurl.com:443 -ssl2

Για να ελέγξετε το SSL V3

openssl s_client -connect secureurl.com:443 –ssl3

Για να ελέγξετε το TLS 1.0

openssl s_client -connect secureurl.com:443 –tls1

Για να ελέγξετε το TLS 1.1

openssl s_client -connect secureurl.com:443 –tls1_1

Για να ελέγξετε το TLS 1.2

openssl s_client -connect secureurl.com:443 –tls1_2

Εάν προστατεύετε έναν διακομιστή ιστού και πρέπει να επικυρώσετε εάν το SSL V2/V3 είναι ενεργοποιημένο ή όχι, μπορείτε να χρησιμοποιήσετε την παραπάνω εντολή. Εάν ενεργοποιηθεί, θα λάβετε “ΣΥΝΔΕΔΕΜΕΝΟ” διαφορετικά “αποτυχία χειραψίας”.

Επαληθεύστε εάν ο συγκεκριμένος κρυπτογράφηση είναι αποδεκτός στη διεύθυνση URL

openssl s_client -cipher 'ECDHE-ECDSA-AES256-SHA' -connect secureurl:443

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

Φυσικά, θα πρέπει να αλλάξετε τον κρυπτογράφηση και τη διεύθυνση URL, στα οποία θέλετε να δοκιμάσετε. Εάν ο αναφερόμενος κρυπτογράφηση γίνει αποδεκτός, τότε θα λάβετε “ΣΥΝΔΕΣΗ” διαφορετικά “αποτυχία χειραψίας”.

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