Γεννήτρια Αυτοϋπογεγραμμένων Πιστοποιητικών
Δημιουργήστε αυτοϋπογεγραμμένα πιστοποιητικά SSL/TLS για τοπική ανάπτυξη και δοκιμές. Δημιουργήστε πιστοποιητικά X.509 με προσαρμοσμένη ισχύ, μέγεθος κλειδιού και λεπτομέρειες θέματος.
Είσοδος
Έξοδος
Readme
Τι είναι ένα Self-Signed Certificate;
Ένα self-signed certificate είναι ένα ψηφιακό πιστοποιητικό που υπογράφεται από τον δημιουργό του αντί να υπογράφεται από μια αξιόπιστη Certificate Authority (CA). Σε αντίθεση με τα πιστοποιητικά που εκδίδονται από CAs όπως το Let's Encrypt, DigiCert ή Comodo, τα self-signed certificates δεν είναι αυτόματα αξιόπιστα για τα browsers και τα λειτουργικά συστήματα.
Τα ψηφιακά πιστοποιητικά χρησιμοποιούν κρυπτογραφία δημόσιου κλειδιού για να δημιουργήσουν ασφαλείς, κρυπτογραφημένες συνδέσεις μεταξύ clients και servers. Περιέχουν πληροφορίες για τον κάτοχο του πιστοποιητικού (subject), τον εκδότη, την περίοδο ισχύος και ένα δημόσιο κλειδί. Όταν ένας server παρουσιάζει ένα πιστοποιητικό, ο client το επαληθεύει σε σχέση με αξιόπιστα root certificates για να διασφαλίσει ότι η σύνδεση είναι ασφαλής και αυθεντική.
Πώς λειτουργεί η δημιουργία πιστοποιητικών;
Η διαδικασία δημιουργίας πιστοποιητικών περιλαμβάνει αρκετά κρυπτογραφικά βήματα:
Δημιουργία ζεύγους κλειδιών: Δημιουργείται ένα ζεύγος κλειδιών RSA (δημόσιο και ιδιωτικό κλειδί). Το ιδιωτικό κλειδί πρέπει να παραμείνει μυστικό, ενώ το δημόσιο κλειδί ενσωματώνεται στο πιστοποιητικό.
Δημιουργία πιστοποιητικού: Δημιουργείται μια δομή πιστοποιητικού που περιέχει τις πληροφορίες του subject (Common Name, Organization, Country κ.λπ.), τις ημερομηνίες ισχύος και το δημόσιο κλειδί.
Self-Signing: Το πιστοποιητικό υπογράφεται ψηφιακά χρησιμοποιώντας το ιδιωτικό κλειδί και έναν αλγόριθμο hash (SHA-256, SHA-384 ή SHA-512). Αυτή η υπογραφή επιτρέπει σε οποιονδήποτε έχει το δημόσιο κλειδί να επαληθεύσει την ακεραιότητα του πιστοποιητικού.
PEM Encoding: Το πιστοποιητικό και το ιδιωτικό κλειδί κωδικοποιούνται σε μορφή PEM (Privacy-Enhanced Mail), μια μορφή κωδικοποίησης Base64 που υποστηρίζεται ευρέως από servers και εφαρμογές.
Περιγραφή εργαλείου
Αυτό το εργαλείο δημιουργεί self-signed X.509 πιστοποιητικά και τα αντίστοιχα ιδιωτικά κλειδιά απευθείας στο browser σας. Κανένα δεδομένο δεν αποστέλλεται σε κανέναν server—όλες οι κρυπτογραφικές λειτουργίες γίνονται τοπικά χρησιμοποιώντας τη βιβλιοθήκη node-forge. Μπορείτε να προσαρμόσετε τα πεδία subject του πιστοποιητικού, το μέγεθος κλειδιού, την περίοδο ισχύος και τον αλγόριθμο υπογραφής ώστε να ταιριάζουν στις συγκεκριμένες απαιτήσεις σας.
Παραδείγματα
Βασικό localhost πιστοποιητικό:
- Common Name:
localhost - Μέγεθος κλειδιού: 2048 bits
- Ισχύ: 1 χρόνο
- Αλγόριθμος: SHA-256
Πιστοποιητικό development server:
- Common Name:
dev.myapp.local - Organization:
My Company - Country:
US - Μέγεθος κλειδιού: 2048 bits
- Ισχύ: 2 χρόνια
Μορφή εξόδου (Πιστοποιητικό):
-----BEGIN CERTIFICATE-----
MIIDXTCCAkWgAwIBAgIJAJC1HiIAZAiUMA0GCSqGSIb3QasEBBUAMEUxCzAJBgNV
...
-----END CERTIFICATE-----Μορφή εξόδου (Ιδιωτικό κλειδί):
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEA0Z3VS5JJcds3xfn/ygWyF8PbnGy...
...
-----END RSA PRIVATE KEY-----Χαρακτηριστικά
- Δημιουργία βασισμένη στο browser: Όλες οι κρυπτογραφικές λειτουργίες εκτελούνται τοπικά στο browser σας χωρίς επικοινωνία με server
- Προσαρμόσιμα μεγέθη κλειδιών: Επιλέξτε από 1024, 2048, 3072 ή 4096-bit RSA κλειδιά για διαφορετικά επίπεδα ασφάλειας
- Πολλαπλοί αλγόριθμοι υπογραφής: Υποστήριξη για SHA-256, SHA-384 και SHA-512 αλγόριθμους hashing
- Πλήρη πεδία X.509: Ορίστε Common Name, Organization, Organizational Unit, Country, State και Locality
- Ευέλικτες περίοδοι ισχύος: Δημιουργήστε πιστοποιητικά που ισχύουν από 30 ημέρες έως 10 χρόνια
Εξήγηση πεδίων πιστοποιητικού
| Πεδίο | Περιγραφή | Παράδειγμα |
|---|---|---|
| Common Name (CN) | Το όνομα τομέα ή hostname για το οποίο είναι το πιστοποιητικό | localhost, example.com |
| Organization (O) | Νομικό όνομα της οργάνωσης | Acme Corporation |
| Organizational Unit (OU) | Τμήμα ή διαίρεση | IT Department |
| Country (C) | Κωδικός χώρας ISO δύο γραμμάτων | US, GB, DE |
| State/Province (ST) | Όνομα κράτους ή επαρχίας | California |
| Locality (L) | Όνομα πόλης ή κωμόπολης | San Francisco |
Συστάσεις μεγέθους κλειδιού
- 1024 bits: Δεν συνιστάται για production· κατάλληλο μόνο για δοκιμές
- 2048 bits: Τυπικό επίπεδο ασφάλειας· συνιστάται για τις περισσότερες περιπτώσεις χρήσης
- 3072 bits: Ενισχυμένη ασφάλεια· καλή για ευαίσθητα περιβάλλοντα ανάπτυξης
- 4096 bits: Μέγιστη ασφάλεια· πιο αργή δημιουργία αλλά υψηλότερη προστασία
Περιπτώσεις χρήσης
Τοπικοί development servers: Δημιουργήστε HTTPS πιστοποιητικά για localhost για να δοκιμάσετε ασφαλείς λειτουργίες όπως Service Workers, Geolocation API ή WebRTC που απαιτούν ασφαλείς περιεχόμενα
Περιβάλλοντα εσωτερικής δοκιμής: Δημιουργήστε πιστοποιητικά για staging servers και περιβάλλοντα QA όπου τα πιστοποιητικά υπογεγραμμένα από CA δεν είναι απαραίτητα
Docker και containerized εφαρμογές: Ασφαλής επικοινωνία μεταξύ containers σε περιβάλλοντα ανάπτυξης ή απομονωμένα δίκτυα
Ανάπτυξη και δοκιμή API: Ενεργοποιήστε HTTPS για τοπικούς API servers για να δοκιμάσετε OAuth flows, ασφαλείς webhooks και certificate pinning
Μάθηση και εκπαίδευση: Κατανοήστε πώς λειτουργούν τα SSL/TLS πιστοποιητικά δημιουργώντας και επιθεωρώντας τα δικά σας πιστοποιητικά
Οδηγίες εγκατάστασης
Μετά τη δημιουργία του πιστοποιητικού σας, θα πρέπει να διαμορφώσετε τον server σας και ενδεχομένως να εμπιστευθείτε το πιστοποιητικό:
Για Node.js/Express:
const https = require("https");
const fs = require("fs");
const options = {
key: fs.readFileSync("private-key.pem"),
cert: fs.readFileSync("certificate.pem"),
};
https.createServer(options, app).listen(443);Για nginx:
server {
listen 443 ssl;
ssl_certificate /path/to/certificate.pem;
ssl_certificate_key /path/to/private-key.pem;
}Εμπιστοσύνη στο πιστοποιητικό (macOS):
- Ανοίξτε το Keychain Access
- Εισάγετε το αρχείο certificate.pem
- Κάντε διπλό κλικ στο πιστοποιητικό και ορίστε "Trust" σε "Always Trust"
Εμπιστοσύνη στο πιστοποιητικό (Windows):
- Κάντε διπλό κλικ στο αρχείο certificate.pem
- Κάντε κλικ στο "Install Certificate"
- Επιλέξτε "Local Machine" και τοποθετήστε στο "Trusted Root Certification Authorities"
Ζητήματα ασφάλειας
- Ποτέ μην χρησιμοποιείτε self-signed πιστοποιητικά στο production για δημόσιες ιστοσελίδες
- Διατηρήστε το ιδιωτικό κλειδί σας ασφαλές—οποιοσδήποτε έχει πρόσβαση μπορεί να προσποιηθεί τον server σας
- Τα self-signed πιστοποιητικά θα εμφανίσουν προειδοποιήσεις browser επειδή δεν είναι αξιόπιστα από προεπιλογή
- Χρησιμοποιήστε σύντομες περιόδους ισχύος για ανάπτυξη για να ενθαρρύνετε την περιστροφή πιστοποιητικών
- Σκεφτείτε να χρησιμοποιήσετε εργαλεία όπως το mkcert για ανάπτυξη εάν χρειάζεστε αξιόπιστα τοπικά πιστοποιητικά