Η διαχείριση μεγάλου αριθμού πιστοποιητικών μπορεί να είναι πολύ ενοχλητική. Τυχαία συμβάντα, όπως η πρόσφατη βιομηχανία ζήτημα εντροπίας σειριακού αριθμού, ενδέχεται να απαιτούν από τους διαχειριστές να ανακαλούν και να επανεκδίδουν χειροκίνητα εκατοντάδες πιστοποιητικά ταυτόχρονα. Οι δικοί μας πράκτορες υποστήριξης και διαχειριστές το έχουν βιώσει αυτό στο παρελθόν, γεγονός που παρακίνησε την SSL.com να εφαρμόσει μια πιο πρακτική λύση: API SSL.com Web Services (SWS).
Το SWS API μπορεί να χρησιμοποιηθεί για την αυτοματοποίηση διαφόρων λειτουργιών που σχετίζονται με πιστοποιητικά, όπως η έκδοση πιστοποιητικών, η επανεκκίνηση και η επανεπεξεργασία παραγγελιών, η διαχείριση της πρόσβασης χρηστών και ούτω καθεξής μέσω οποιασδήποτε γλώσσας προγραμματισμού ή δέσμης ενεργειών. Για να λάβετε προγενέστερες εντολές API cURL για μια μεμονωμένη παραγγελία, δοκιμάστε να προσθέσετε /developer
στο τέλος αυτής της σελίδας παραγγελίας πιστοποιητικών (π.χ. https://www.ssl.com/certificate_orders/co-1234xyz/developer
).
Για να εισαγάγετε ορισμένες από τις δυνατότητες του API, αυτό το σεμινάριο θα σας καθοδηγήσει στην έκδοση ενός πιστοποιητικό διακομιστή ιστού με επικύρωση τομέα (DV). Στη διαδικασία θα αγγίξουμε πολλά χρήσιμα θέματα, όπως η πρόσβαση στο API, η δημιουργία ενός CSRκαι προετοιμασία του διακομιστή σας για επικύρωση ελέγχου τομέα. Επιπλέον, θα δούμε πώς μπορούμε να ανακαλέσουμε μαζικά πιστοποιητικά μέσω του API, το οποίο είναι ιδιαίτερα χρήσιμο σε περιπτώσεις συμβάντων ασφαλείας.
Το Sandbox
Οποιοδήποτε είδος αυτοματισμού απαιτεί εκτεταμένες δοκιμές πριν από την κυκλοφορία σε ένα σύστημα παραγωγής, ειδικά όταν υπάρχουν χρήματα. Για το λόγο αυτό, το SSL.com έχει εφαρμόσει και διατηρεί το Sandbox. Το Sandbox είναι ένας κλώνος ανάπτυξης του API παραγωγής μας. Περιέχει όλες τις λειτουργίες του πρωτοτύπου, αλλά δεν συνδέεται με τη βάση δεδομένων παραγωγής. Αυτό σημαίνει ότι μπορείτε να δημιουργήσετε νέους χρήστες και να πειραματιστείτε ελεύθερα χωρίς να φοβάστε να βλάψετε κάτι και να χρεωθείτε για ένα λάθος.
Όταν είστε ικανοποιημένοι ότι ο αυτοματισμός σας λειτουργεί σωστά στο Sandbox, μπορείτε στη συνέχεια να μετακινήσετε τον κωδικό σας στην παραγωγή και να είστε βέβαιοι ότι τα σενάριά σας δεν θα αποτύχουν.
Το API παραγωγής βρίσκεται στην ακόλουθη διεύθυνση URL:
https://sws.sslpki.com/
Για να εκτελέσετε κλήσεις API στο Sandbox, πρέπει να αλλάξετε μόνο το όνομα τομέα, όπως φαίνεται στο παρακάτω απόσπασμα:
https://sws-test.sslpki.com/
Προετοιμάστε το περιβάλλον
Πριν ξεκινήσετε να παίζετε με το API, πρέπει πρώτα να προετοιμάσετε ένα εργασιακό περιβάλλον. Τα εργαλεία που θα χρησιμοποιήσουμε σε αυτό το σεμινάριο είναι ένα τερματικό Linux και ο αξιόπιστος επεξεργαστής κειμένου σας.
Το πρώτο πράγμα που θα χρειαστείτε είναι ένας κατάλογος για όλα τα απαραίτητα αρχεία. Για λόγους χρησιμότητας, θα αναφερθούμε σε αυτόν τον κατάλογο ως sslcom_api_test/
ή "ο κατάλογος εργασίας". Για να δημιουργήσετε και να εισαγάγετε τον κατάλογο, εκδώστε τις ακόλουθες εντολές στο τερματικό.
$ mkdir ~ / sslcom_api_test $ cd ~ / sslcom_api_test
Στη συνέχεια, πρέπει να κάνετε λήψη Πακέτο ενδιάμεσων πιστοποιητικών SSL.com, το οποίο είναι ένα αρχείο αρχειοθέτησης που περιέχει όλα τα απαραίτητα αρχεία πιστοποιητικών για ασφαλή πρόσβαση στο API. Με αυτόν τον τρόπο, τυχόν δεδομένα που ανταλλάσσετε με το διακομιστή API θα κρυπτογραφούνται και μπορείτε να είστε σίγουροι ότι τυχόν ευαίσθητες πληροφορίες, όπως τα κλειδιά API, θα προστατεύονται από την υποκλοπή.
Κατεβάστε το αρχείο ZIP από τον παραπάνω σύνδεσμο και αποσυμπιέστε τον στον κατάλογο εργασίας. (Βεβαιωθείτε ότι αλλάξατε ~/Downloads
στον κατάλογο όπου αποθηκεύσατε το αρχείο ZIP, εάν χρειάζεται). Το αρχείο πιστοποιητικού που θα χρησιμοποιήσουμε σε όλο αυτό το άρθρο είναι SSL_COM_RSA_SSL_SUBCA.crt
.
$ unzip ~ / Λήψεις / SSLcom_DV_CA_Zip.zip -d. Αρχείο: ./SSLcom_DV_CA_Zip.zip εξαγωγή: ./SSL_COM_RSA_SSL_SUBCA.crt εξαγωγή: ./SSL_COM_ROOT_CERTIFICATION_AUTHORITY_RSA.crt εξαγωγή: ./CERTUM_TRUSTED_NETWORK_CA.crt
Θα χρησιμοποιούμε cURL, ένα τυπικό εργαλείο δικτύου Linux, για όλες τις κλήσεις API σε αυτό το σεμινάριο. Το cURL μπορεί να εκτελέσει οποιαδήποτε λειτουργία HTTP και εγκαθίσταται από προεπιλογή στις περισσότερες διανομές Linux. Επιπλέον, το cURL μπορεί εύκολα να εγκατασταθεί στα Windows μέσω των δυαδικών εκτελέσιμων που παρέχονται στη σελίδα του έργου cURL ή επιλέγοντας το στο πρόγραμμα εγκατάστασης του Cygwin. Ωστόσο, λάβετε υπόψη ότι δεδομένου ότι το API βασίζεται σε ανοιχτές μορφές, μπορείτε να χρησιμοποιήσετε σχεδόν οποιοδήποτε άλλο τέτοιο εργαλείο δικτύου ή γλώσσα προγραμματισμού για πρόσβαση σε αυτό.
Επιπλέον, θα χρησιμοποιούμε OpenSSL για να ετοιμάσουμε την παραγγελία πιστοποιητικού μας. Το OpenSSL είναι ένα κιτ εργαλείων ανοιχτού κώδικα που μπορεί να εκτελέσει σχεδόν οποιαδήποτε κρυπτογραφική λειτουργία που ίσως χρειαστείτε. Αυτό το εργαλείο περιλαμβάνεται επίσης στη λίστα πακέτων Cygwin, επομένως μπορείτε είτε να το επιλέξετε για εγκατάσταση κατά τη ρύθμιση της παρουσίας Cygwin είτε να το εγκαταστήσετε χειροκίνητα μέσω των δυαδικών αρχείων που παρέχονται στην αρχική σελίδα του έργου.
Τέλος, θα χρειαστείτε δύο κλειδιά API για να εργαστείτε με το Sandbox, τα οποία σχετίζονται με τον λογαριασμό χρήστη σας. Εάν δεν έχετε ήδη λογαριασμό στο Sandbox, εγγραφείτε μέσω του Sandbox έντυπο εγγραφής. Η διαδικασία είναι ίδια με τη δημιουργία ενός κανονικού λογαριασμού πελάτη SSL.com. Εάν έχετε ήδη λογαριασμό στο Sandbox, μπορείτε να παραλείψετε με ασφάλεια αυτό το βήμα.
Πρόσβαση στο API
Το SWS API βασίζεται σε HTTP (το πρωτόκολλο χρησιμοποιούν τα προγράμματα περιήγησης) και όλα τα δεδομένα ανταλλάσσονται στο Μορφή JSON.
Η πλειονότητα των κλήσεων API θα απαιτήσει να συμπεριλάβετε ένα account_key
και σε έναν secret_key
παράμετρος για σκοπούς εξουσιοδότησης. Μπορείτε πάντα να βρείτε τα διαπιστευτήρια του λογαριασμού σας στη σελίδα Πίνακα ελέγχου του Sandbox, αν και σε αυτήν την περίπτωση θα τα ανακτήσουμε μέσω του API.
Η εντολή που αναφέρεται στο επόμενο απόσπασμα κώδικα θα σας συνδέσει στην πύλη και θα ανακτήσει τις πληροφορίες του λογαριασμού σας, συμπεριλαμβανομένων αυτών των κλειδιών API. Εάν αντιγράφετε και επικολλάτε την εντολή σε ένα παράθυρο τερματικού, βεβαιωθείτε ότι έχετε αντικαταστήσει USERNAME
και PASSWORD
με τα διαπιστευτήρια του λογαριασμού σας.
$ curl -L --cacert SSL_COM_RSA_SSL_SUBCA.crt -- request GET --data-urlencode 'password=PASSWORD' \ 'https://sws-test.sslpki.com/user/USERNAME' { "login": "JDemo" , "email": "jdemo@mailinator.com", "account_number": "abc-1ec6012", "account_key": "4497618e5c98", "secret_key": "FY+s9/ghUrv7SQ==", "status": " enabled", "user_url": "https://sws-test.sslpki.com/users/1322857", "available_funds": "0.00$" }
Αν και σύνταξη του cURL είναι αρκετά απλό, ας σας εξοικειώσουμε με την λεπτομερή εξέταση της προηγούμενης κλήσης.
-L
δίνει εντολή στο cURL να ακολουθήσει όλες τις ανακατευθύνσεις HTTP. Πρέπει να συμπεριλάβετε αυτήν την επιλογή σε όλες τις κλήσεις για να αποφύγετε τυχόν προβλήματα.--cacert SSL_COM_RSA_SSL_SUBCA.crt
καθοδηγεί το CURL για επικύρωση του πιστοποιητικού του διακομιστή API, με το πιστοποιητικό που κατεβάσαμε στο πακέτο. Αυτό θα επιτρέψει στο cURL να κρυπτογραφήσει όλα τα δεδομένα που αποστέλλονται στον διακομιστή.--request GET
δίνει εντολή στο cURL να εκτελέσει ένα αίτημα HTTP GET. Ορισμένες κλήσεις δέχονται μόνο αιτήματα HTTP POST ή PUT. Αυτή η επιλογή είναι ο τρόπος χειρισμού τέτοιων αιτημάτων.--data-urlencode
προετοιμάζει τον κωδικό πρόσβασης του λογαριασμού για μετάδοση στον διακομιστή. Τα αιτήματα GET μπορούν να περιλαμβάνουν παραμέτρους στο URL, ενώ τα αιτήματα PUT και POST περιλαμβάνουν μόνο παραμέτρους στο κύριο σώμα. Δεδομένου ότι ο κωδικός πρόσβασης θα περάσει μέσω της διεύθυνσης URL, πρέπει να τον κωδικοποιήσουμε για να ξεφύγουμε από σύμβολα (π.χ./
,?
or#
) που μπορεί να προκαλέσει σύγχυση στον διακομιστή. Αυτή η διαδικασία καλείται Κωδικοποίηση διεύθυνσης URL.
\
) στο τέλος της πρώτης γραμμής αναγκάζει το τερματικό Linux να αγνοήσει έναν χαρακτήρα νέας γραμμής και να συνεχίσει την ανάλυση χαρακτήρων στην επόμενη γραμμή ως μέρος της αρχικής εντολής. Θα χρησιμοποιήσουμε αυτήν τη σύνταξη για να χωρίσουμε τις μεγάλες εντολές σε πολλές γραμμές, σε μια προσπάθεια να τις κάνουμε πιο ευπαρουσίαστες.Το αποτέλεσμα της κλήσης API είναι ένα αντικείμενο JSON που περιέχει πληροφορίες λογαριασμού, συμπεριλαμβανομένου του account_key
και secret_key
, απαιτείται σε επόμενες κλήσεις API.
Έκδοση πιστοποιητικού διακομιστή
Αφού προετοιμάσετε το περιβάλλον εργασίας και αποκτήσατε τα κλειδιά API, είστε πλέον έτοιμοι να αρχίσετε να παίζετε με το API. Για παράδειγμα, θα ζητήσουμε την έκδοση ενός Βασικό πιστοποιητικό SSL για έναν φανταστικό διακομιστή ιστού με το όνομα example.ssl.com
. Ανεξάρτητα από το αν χρησιμοποιείτε το API ή την πύλη πελατών, η έκδοση ενός πιστοποιητικού απαιτεί ορισμένα βήματα που πρέπει να ακολουθηθούν.
Αυτά τα βήματα περιλαμβάνουν τη δημιουργία ενός ζεύγους ιδιωτικού και δημόσιου κλειδιού, τη δημιουργία ενός αίτημα υπογραφής πιστοποιητικού (CSR), δημιουργία παραγγελίας πιστοποιητικού και εκτέλεση του επικύρωση ελέγχου τομέα.
Δημιουργήστε το CSR
Υπάρχουν διάφορες μεθόδους για να δημιουργήσετε ένα CSR, ωστόσο, δεδομένου ότι ήδη χρησιμοποιούμε το τερματικό, ας δούμε πώς να δημιουργήσουμε ένα CSR με το OpenSSL. Εάν έχετε ήδη ένα CSR μπορείτε να χρησιμοποιήσετε για αυτόν τον σκοπό, μπορείτε να παραλείψετε αυτό το βήμα.
A CSR είναι ένα αρχείο κωδικοποίησης base64 που περιέχει τις περισσότερες από τις πληροφορίες που θα περιληφθούν στο τελικό αρχείο πιστοποιητικού. Μεταξύ των πιο σημαντικών περιεχομένων του είναι το Δημόσιο κλειδί και την όνομα τομέα του διακομιστή το πιστοποιητικό θα εκδοθεί για.
Αυτό σημαίνει ότι θα χρειαστεί ένα ζεύγος δημόσιου κλειδιού πριν από την έκδοση ενός CSR. Η ακόλουθη εντολή θα δημιουργήσει ένα νέο PEM αρχείο στον κατάλογο εργασίας, με το όνομα example.ssl.com.key
, που περιέχει τα δύο κλειδιά.
$ openssl genrsa -out example.ssl.com.key 2048 Δημιουργία ιδιωτικού κλειδιού RSA, συντελεστής μήκους 2048 bit ................... +++ ...... .................................................. ...... +++ e είναι 65537 (0x010001)
Χρησιμοποιώντας το ζεύγος κλειδιών, το OpenSSL μπορεί τώρα να δημιουργήσει ένα CSR για σενα. Για να το επιτύχετε αυτό, χρησιμοποιήστε την εντολή που εμφανίζεται στο παρακάτω απόσπασμα κώδικα.
$ openssl req -new -key example.ssl.com.key -out example.ssl.com.csr Θα σας ζητηθεί να εισαγάγετε πληροφορίες που θα ενσωματωθούν στο αίτημα πιστοποιητικού σας. Αυτό που πρόκειται να εισαγάγετε είναι αυτό που ονομάζεται Διακεκριμένο Όνομα ή DN. Υπάρχουν αρκετά πεδία αλλά μπορείτε να αφήσετε μερικά κενά Για ορισμένα πεδία θα υπάρχει μια προεπιλεγμένη τιμή. Εάν πληκτρολογήσετε '.', το πεδίο θα μείνει κενό. ----- Όνομα χώρας (κωδικός 2 γραμμάτων) [AU]: Όνομα πολιτείας ή επαρχίας ΗΠΑ (πλήρες όνομα) [Κάποια πολιτεία]: Τέξας Όνομα τοποθεσίας (π.χ. πόλη) []: Όνομα οργανισμού Χιούστον (π.χ. εταιρεία) [Internet Widgits Pty Ltd]:Παράδειγμα Όνομα Οργανωτικής Μονάδας (π.χ. ενότητα) []:Παράδειγμα Κοινό όνομα Τμήματος (π.χ. διακομιστής FQDN ή ΟΝΟΜΑ ΣΑΣ) []:example.ssl.com Διεύθυνση ηλεκτρονικού ταχυδρομείου []:admin@example.ssl. com Εισαγάγετε τα ακόλουθα «έξτρα» χαρακτηριστικά που θα σταλούν με το αίτημα πιστοποιητικού σας Ένας κωδικός πρόσβασης πρόκλησης []: Ένα προαιρετικό όνομα εταιρείας []:
Το OpenSSL θα σας ρωτήσει για τα βασικά στοιχεία επικοινωνίας σας και το Συνηθισμένο όνομα του πιστοποιητικού. Για πιστοποιητικά SSL, το κοινό όνομα είναι το όνομα τομέα του διακομιστή (σε αυτήν την περίπτωση example.ssl.com
). Η εκτέλεση της παραπάνω εντολής θα δημιουργήσει ένα αρχείο με το όνομα example.ssl.com.csr
, στον τρέχοντα κατάλογο που περιέχει τον κωδικοποιημένο base64 CSR.
$ cat example.ssl.com.csr -----BEGIN CERTIFICATE REQUEST----- MIIC5DCCAcwCAQAwgZ4xCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4G A1UEBwwHSG91c3RvbjEQMA4GA1UECgwHRXhhbXBsZTEbMBkGA1UECwwSRXhhbXBs ZSBEZXBhcnRtZW50MRgwFgYDVQQDDA9leGFtcGxlLnNzbC5jb20xJDAiBgkqhkiG 9w0BCQEWFWFkbWluQGV4YW1wbGUuc3NsLmNvbTCCASIwDQYJKoZIhvcNAQEBBQAD ggEPADCCAQoCggEBAN7XMG7+zhaGfimdD1F0P3xxUS8dC6knKId3ONEt14Wa5E62 ZIUkyNgQC7gd3Be31jBhcuzJKn8UbTcWnPXd3OCbznbkqXtnljiF3yN9cRnj2f7y 89Hfmje8C07xe6AsoUMSTYzwsoo3zai1bxOUhy+uDU8FzxcSHunepdx/naHXY1Md waQwzBCp668hFeIOslEjkTCNle3HK1LrgjZCIg0tyHBuZTNuUcQOyXrrDSrtOxx8 dqOD7sYqJie2xiCC9kkpNGYYTEuCuVKidgiC3e/DuLUNbhoUMfSENv64TGA7lRIj nEBrrEm6FOSgPEGgEsM78cexVaqNCavNXNy49ysCAwEAAaAAMA0GCSqGSIb3DQEB CwUAA4IBAQAV1Ac9nYH64BrB4OHlOYPkZbK6qCKfipTg7s4Xdcc3TponjTnMJyaQ NNh0koCUOFJaYPjWIk/YkCeGNv/fbce+sddNbh0jtcVTPw8EFvs53IaUAE99zDvn 577Azj+OXfmaLQXjK15BtnT5hbmRKsrpPxnAdk4NOohM7QKWNEdBrcfTuH1q3WpD 6jSD35FlIFUfMgNi34mxF4vYamGrWgdURIb7DCk2h7B2LQK+vRNx1uPm9FVSeYZc tHZWTiw2xEExw2Qco6lqXYl8t0Eo07gYl4gAEx9bibvVqYMo3Zss1mRg6+WEB8Xs G+Hn1TG3XIaIbmvlpRNma/l766KZwLXG -----END CERTIFICATE REQUEST-----
Δημιουργήστε τη σειρά πιστοποιητικών
Έχοντας λάβει το CSR, είστε πλέον έτοιμοι να δημιουργήσετε μια παραγγελία πιστοποιητικού μέσω του API. Η πρώτη κλήση API που εξετάσαμε ήταν ένα αίτημα GET, ενώ αυτό είναι ένα POST. Τα αιτήματα POST πρέπει να περιλαμβάνουν όλες τις παραμέτρους στο σώμα τους ως αντικείμενα JSON. Κατά συνέπεια, πρέπει να μορφοποιήσετε τις παραμέτρους της παραγγελίας πιστοποιητικών στο JSON. Μπορείτε να βρείτε μια διαμόρφωση JSON για αυτό το παράδειγμα στο ακόλουθο απόσπασμα.
{ "account_key": "4497618e5c98", "secret_key": "FY+s9/ghUrv7SQ==", "product": "106", "period": "365", "server_software": "15", "organization_name" : "Example", "street_address_1": "Example st", "locality_name": "Houston", "state_or_province_name": "Texas", "postal_code": "77777", "country_name": "US", "duns_number": "1234567", "company_number": "Αριθμός_παραδείγματος", "registered_country_name": "US", "unique_value": "1ed1c72baf", "csr":"-----ΕΝΑΡΞΗ ΑΙΤΗΣΗΣ ΠΙΣΤΟΠΟΙΗΣΗΣ-----MIDIjCCAgwaRlk. 0QQ3JKQqJbii3760Rgon8hZmbkiE=----- ΑΙΤΗΣΗ ΠΙΣΤΟΠΟΙΗΣΗΣ-----" }
Έχουμε ήδη δει τα κλειδιά API στο παρελθόν. Ωστόσο, για να παραγγείλετε πιστοποιητικά πρέπει επίσης να συμπεριλάβουμε επιπλέον παραμέτρους όπως το product
Ταυτότητα και η ισχύς period
. Μπορείτε να βρείτε μια λίστα αναγνωριστικών προϊόντων στο Τεκμηρίωση API SWS. Σε αυτό το παράδειγμα, η παραγγελία γίνεται για ένα βασικό πιστοποιητικό SSL με περίοδο ισχύος 1 έτους. Η επόμενη ομάδα παραμέτρων αποθηκεύει στοιχεία επικοινωνίας σχετικά με τον καταχωρίζοντα (αυτό είστε εσείς). ο unique_value
παράμετρος (προαιρετικό), περιέχει μια αλφαριθμητική συμβολοσειρά που εξασφαλίζει τη μοναδικότητα του αιτήματος. Εάν δεν παρέχετε μια μοναδική τιμή, θα δημιουργηθεί μια τυχαία τιμή για εσάς. Ο καθορισμός μιας μοναδικής τιμής με αυτόν τον τρόπο είναι χρήσιμο εάν θέλετε να δημιουργήσετε αρχεία DCV ή καταχωρίσεις CNAME εκτός της πύλης χρήστη του SSL.com. Τέλος, το csr
η παράμετρος πρέπει να περιέχει μια έγκυρη κωδικοποίηση base64 CSR, όπως αυτό που αποθηκεύσαμε example.ssl.com.csr
.
Αντικαταστήστε τις παραμέτρους με τις δικές σας τιμές και CSRκαι αποθηκεύστε αυτήν τη διαμόρφωση JSON σε ένα αρχείο με το όνομα example.ssl.com.json
.
Με τα πάντα έτοιμα, είστε πλέον έτοιμοι να δημιουργήσετε την παραγγελία σας. Το cURL αποδέχεται τις παραμέτρους JSON είτε ως ενσωματωμένη συμβολοσειρά, είτε μέσω ονόματος αρχείου. Λόγω του ότι η πρώτη επιλογή είναι πολύ λεκτική, ας περάσουμε το όνομα αρχείου.
Παρακαλώ σημειώστε το --data-binary
διακόπτης cURL, ο οποίος δίνει εντολή στο cURL να συμπεριλάβει τα περιεχόμενα του αρχείου στο σώμα του αιτήματος POST.
$ curl -L --cacert SSL_COM_RSA_SSL_SUBCA.crt -- request POST --header "Content-Type: application/json" \ --data-binary "@example.ssl.com.json" 'https://sws-test .sslpki.com/certificates' { "ref": "co-ac1ecm200", "registrant": { "organization": "Example", "organization_unit": null, "street_address_1": "Example st", "street_address_2": null, "street_address_3": null, "locality": "Houston", "state_or_province": "Texas", "post_office_box": null, "postal_code": "77777", "country": "US", "email": null }, "order_status": "επικύρωση απαιτείται", "validations": null, "order_amount": "$49.00", "certificate_url": "https://sandbox.ssl.com/team/abc-1ec6012/certificate_orders/co -ac1ecm200", "receipt_url": "https://sandbox.ssl.com/team/abc-1ec6012/orders/fe3b-1ecm201", "smart_seal_url": "https://sandbox.ssl.com/team/abc -1ec6012/certificate_orders/co-ac1ecm200/site_seal", "validation_url": "https://sandbox.ssl.com/team/abc-1ec6012/certificate_orders/co-ac1ecm200/validation", "external"_ordernu ": null }
Το αποτέλεσμα της λειτουργίας είναι ένα άλλο αντικείμενο JSON που περιέχει τις λεπτομέρειες της παραγγελίας πιστοποιητικού που δημιουργήθηκε πρόσφατα. Μπορούμε να το δούμε order_status
, και τον αριθμό αναφοράς του στο ref
παράμετρος που χρησιμοποιείται για την αναφορά αυτής της παραγγελίας σε όλες τις επόμενες κλήσεις API. Επιπλέον, η έξοδος περιέχει διάφορες διευθύνσεις URL, όπως το certificate_url
, που δείχνει τις λεπτομέρειες της παραγγελίας στην πύλη και το validation_url
, που δείχνει τη σελίδα επικύρωσης της παραγγελίας.
Τέλος, certificates
θα περιέχει όλα τα πιστοποιητικά που σχετίζονται με την παραγγελία. Δεδομένου ότι η παραγγελία δεν έχει επικυρωθεί ακόμη, δεν έχουν δημιουργηθεί πιστοποιητικά.
Επικύρωση ελέγχου τομέα
Όπως αναφέρεται στις παραγγελίες πιστοποιητικών order_status
of validation required
, πρέπει να πραγματοποιήσετε την επικύρωση πριν από την έκδοση πιστοποιητικού.
Απαιτούνται δημόσια αξιόπιστες ΑΠ (όπως SSL.com) για να επαληθεύσουν ότι ο αγοραστής πιστοποιητικών ελέγχει πράγματι τον διακομιστή για τον οποίο θα εκδοθεί το πιστοποιητικό πριν από την έκδοση πιστοποιητικών. Αυτό μπορεί να επιτευχθεί μέσω πολλαπλές μεθόδουςκαι μπορείτε να δείτε όλες τις διαθέσιμες μεθόδους επικύρωσης για μια συγκεκριμένη παραγγελία μέσω αυτής της επόμενης κλήσης API.
Βεβαιωθείτε ότι έχετε αντικαταστήσει τον αριθμό αναφοράς συν-ac1ecm200 στο URL με τον αριθμό αναφοράς της παραγγελίας σας, ο οποίος δημιουργήθηκε στην προηγούμενη κλήση API.
$ curl --cacert SSL_COM_RSA_SSL_SUBCA.crt -- αίτημα GET \ --data-urlencode 'secret_key=FY+s9/ghUrv7SQ==' --data-urlencode 'account_key=4497618e5c98' \ 'https://slp-test. .com/certificate/co-ac1ecm200/validations/methods' { "instructions": "https://www.ssl.com/faqs/ssl-dv-validation-requirements/", "md5_hash": "29BD4C00B65613CCEC04C19" sha0050_hash": "BF931FDFD2C340D9B43FC45A8310E4D400B4CAF4D61BAAF8E2002F0945252D35", "dns_sha9_hash" "BF751FDFD2B340F 9BAAF43E45F8310D4c400a4c4", "dcv_methods": { "example.ssl.com": { "email_addresses": [ "admin@ssl.com", "administrator@ssl" .com", "webmaster@ssl.com", "hostmaster@ssl.com", "postmaster@ssl.com", "admin@example.ssl.com", "administrator@example.ssl.com", "webmaster @example.ssl.com", "hostmaster@example.ssl.com", "postmaster@example.ssl.com" ], "http_csr_hash": { "http": "http://example.ssl.com/. καλά γνωστό/pki-validation/61BD8C2002B0945252CCEC35C9C751.167D8.txt", "allow_https": "true", "contents": "BF5FDFD49C29D4B00FC65613A04E19B0050F931F340F9F43F45FD8310F4F400F4F4F61F8F2002F0945252F35F9FD751F167FD8F5FD49FD29FD4F00F65613F04F19F0050F931F8716F0F29F4F00F65613F04F19F0050F931. 340\nssl.com\n9c43a45c8310" }, "cname_csr_hash": { "cname": "_4BD400C4B4CCEC61C8C2002D0945252.example. ssl.com. CNAME ff35e9fd.ssl.com.", "Όνομα": "_751BD8716C0BXNUMXCCECXNUMXCXNUMXCXNUMXDXNUMX.example.ssl.com", "τιμή": "BFXNUMXFDFDXNUMXCXNUMXDXNUMXBXNUMXFCXNUMXFDXNUMXFDXNUMXFDXNUMXFDXNUMXFDXNUMXFDXNUMXFDXNUMXFDXNUMXA. XNUMXEXNUMXFXNUMXDXNUMX.ffXNUMXeXNUMXfd.ssl.com." } } }, "ca_tag": "ssl. com"}
Η επιστρεφόμενη έξοδος θα περιλαμβάνει όλες τις πληροφορίες που χρειάζεστε για να πραγματοποιήσετε επικύρωση ελέγχου τομέα. Για παράδειγμα, εάν θέλετε να χρησιμοποιήσετε το http_csr_hash
μέθοδο επικύρωσης, πρέπει να δημιουργήσετε ένα αρχείο στο διακομιστή για το οποίο θα εκδοθεί το πιστοποιητικό .well_known/pki-validation/29BD4C00B65613CCEC04C19C0050D931.txt
. Το αρχείο πρέπει ακριβώς περιέχει την τιμή του contents
παράμετρος.
Στη συνέχεια, μπορείτε να επισκεφθείτε το validation_url
βρέθηκε στην προηγούμενη κλήση που δημιούργησε την παραγγελία και προχωρήσει στην επικύρωση, όπως θα κάνατε κανονικά με μια παραγγελία που έχετε δημιουργήσει μέσω της πύλης πελατών σας. (Μπορείτε πάντα να επισκεφτείτε το Επικυρώσεις σελίδα και βρείτε τη διεύθυνση URL για τη συγκεκριμένη παραγγελία).
Μετά την επιτυχή επικύρωση ελέγχου τομέα, θα εκδοθεί το πιστοποιητικό και θα μπορείτε να το κατεβάσετε.
Ανακτήστε το πιστοποιητικό
Μπορείτε να βρείτε το πιστοποιητικό σας στην πύλη ιστού ή να το ανακτήσετε μέσω του API. Για τους σκοπούς μας θα χρησιμοποιήσουμε το API. Όπως φαίνεται στην προηγούμενη ενότητα, κατά τη δημιουργία μιας νέας παραγγελίας πιστοποιητικού, η απόκριση περιέχει έναν αριθμό αναφοράς. Αυτός ο αριθμός μπορεί να χρησιμοποιηθεί για την ανάκτηση των στοιχείων της παραγγελίας, συμπεριλαμβανομένων των πραγματικών δεδομένων πιστοποιητικού.
$ curl -- request GET -L --cacert SSL_COM_RSA_SSL_SUBCA.crt \ --data-urlencode 'secret_key=FY+s9/ghUrv7SQ==' --data-urlencode 'account_key=4497618e5c98' \ 'https://sws-test .sslpki.com/certificate/co-ac1ecm200?response_type=individually&response_encoding=base64' { "description": "1 έτος Βασικό SSL", "product": "106", "product_name": "basicssl", "order_status": " έκδοση", "ημερομηνία_παραγγελίας": "2019-05-02T10:08:48.000-05:00", "εγγεγραμμένος": { "organization": "Παράδειγμα", "organization_unit": null, "street_address_1": "Example st" , "street_address_2": null, "street_address_3": null, "locality": "Houston", "state_or_province": "Texas", "post_office_box": null, "postal_code": "77777", "country": "US" , "email": null }, "certificates": "\nMIIE1TCCA72gAwIBAgIRANsjhF+t ... 4CAw5Egg73IgIHggE1QEZiYQRu+0wDQY\n", "common_name": "example.ssl.wiqty","purd " : "1", "subject_alternative_names": [ "example.ssl.com", "www.example.ssl.com" ], "validations": null, "effective_date": "0-2019-05T03:11:22- 37.000:05", "expiration_date": "00-2020-05T02:11:22-37.000:05", "algorithm": "SHA00", "external_order_number": null, "domains": null, "site_seal_code": null , "subscriber_agreement": null, "server_software": 256, "contacts": [ { ... }, { ... }] }
Επειδή το API προορίζεται να χρησιμοποιηθεί μέσω προγραμματισμού, πρέπει να αναλύσετε την απόκριση JSON για να απομονώσετε το πιστοποιητικό και να το αποθηκεύσετε σε ένα αρχείο. Η ανάλυση του JSON είναι πέρα από το πεδίο αυτού του άρθρου. Ωστόσο, είναι μια απλή εργασία που μπορεί εύκολα να εφαρμοστεί στις περισσότερες σύγχρονες γλώσσες δέσμης ενεργειών ή προγραμματισμού.
Αναζήτηση παραγγελιών πιστοποιητικών
Εάν δεν έχετε τον αριθμό αναφοράς, μπορείτε να εκδώσετε μια κλήση API για να ανακτήσετε όλες τις παραγγελίες πιστοποιητικών του λογαριασμού σας. Αυτή η κλήση σας επιτρέπει να φιλτράρετε τις παραγγελίες, καθώς και ποιες πληροφορίες θα εμφανίζονται.
$ curl --cacert SSL_COM_RSA_SSL_SUBCA.crt -- αίτημα GET \ --data-urlencode 'secret_key=FY+s9/ghUrv7SQ==' --data-urlencode 'account_key=4497618e5c98' \ 'https://slp-test. .com/certificates?fields=domains,ref,order_status' [ { "ref": "co-ac1ecm200", "order_status": "exsued", "domains": [ "example.ssl.com" ] }, { " ref": "co-581eclsap", "order_status": "επικύρωση, παρακαλώ περιμένετε", "domains": [ "example.ssl.com" ] }, { "ref": "co-6f1ecm1of", "order_status": "waiting on contacts information from customer", "domains": [ "test.ssl.com" ] } }
Η fields
Η παράμετρος URL σάς επιτρέπει να ελέγχετε ποιες λεπτομέρειες πιστοποιητικού θα εμφανίζονται στην έξοδο. Μπορείτε επιπλέον να κάνετε σελιδοποίηση μέσω του per_page
και page
παραμέτρους αιτήματος. Για να περιορίσετε τον αριθμό των πιστοποιητικών βάσει των ημερομηνιών έκδοσης που μπορείτε να χρησιμοποιήσετε start
και end
Παράμετροι. Τέλος, μπορείτε να φιλτράρετε και να αναζητήσετε τις παραγγελίες χρησιμοποιώντας κριτήρια όπως αναγνωριστικό προϊόντος, ημερομηνία λήξης ή οποιοδήποτε άλλο πεδίο που περιέχεται στο πιστοποιητικό. Για περισσότερες πληροφορίες ρίξτε μια ματιά Τεκμηρίωση API του SSL.com.
Ανάκληση του πιστοποιητικού
Το τελευταίο χαρακτηριστικό που θα εξετάσουμε σε αυτόν τον οδηγό είναι η μαζική ανάκληση πιστοποιητικών. Τα πιστοποιητικά μπορούν να σας προστατεύσουν εφόσον μόνο εσείς (ή άτομα που εμπιστεύεστε) έχετε το ιδιωτικό κλειδί που σχετίζεται με αυτά. Σε περίπτωση που ένα ιδιωτικό κλειδί παραβιαστεί ή τυχόν πληροφορίες σχετικά με το πιστοποιητικό πρέπει να αλλάξουν, τότε το πιστοποιητικό πρέπει να ανακληθεί αμέσως και να εκδοθεί νέο.
Σε περιπτώσεις όπου υπάρχει υποψία ότι το ιδιωτικό κλειδί έχει κλαπεί, είναι επιτακτική ανάγκη το λογισμικό πελάτη (όπως προγράμματα περιήγησης ή λειτουργικά συστήματα) να σταματήσει να το δέχεται όσο το δυνατόν συντομότερα. Για αυτόν τον λόγο, συνιστούμε ανεπιφύλακτα να εφαρμόσετε ένα αυτοματοποιημένο σύστημα ανάκλησης, επανέκδοσης, ανάκτησης και εγκατάστασης πιστοποιητικών στους διακομιστές σας.
Το SWS API του SSL.com σας επιτρέπει να ανακαλέσετε μέσω προγραμματισμού ένα, περισσότερα ή όλα τα πιστοποιητικά σύμφωνα με οποιαδήποτε από τις παραγγελίες πιστοποιητικών. Η ακόλουθη κλήση API θα ανακαλέσει όλα τα πιστοποιητικά με εντολή πιστοποιητικού συν-ac1ecm200:
curl --cacert SSL_COM_RSA_SSL_SUBCA.crt -- request DELETE --header "Content-Type: application/json" \ --data-binary '{"account_key":"4497618e5c98","secret_key":"FY+s9/Q=ghUrv7 =","reason":"κλεμμένο"}' \ 'https://sws.sslpki.com/certificate/co-ac1ecm200' { "status":"revoked" }
Αυτή η εντολή cURL εκδίδει ένα αίτημα DELETE HTTP (αντί για GET ή POST όπως οι προηγούμενες εντολές) και παρέχει τη διαμόρφωση JSON inline. Είναι επίσης έγκυρο να δημιουργήσετε ένα αρχείο με τα περιεχόμενα JSON και να το μεταβιβάσετε στο cURL μέσω του ονόματος αρχείου με τον ίδιο τρόπο όπως και η εντολή που εξέδωσε την εντολή πιστοποιητικού.
Μπορείτε να προσδιορίσετε τον λόγο που θέλετε στο reason
και μπορεί προαιρετικά να περιλαμβάνει μια λίστα σειριακών αριθμών πιστοποιητικών στο JSON για ανάκληση μόνο των πιστοποιητικών που ταιριάζουν με αυτά τα σειριακά. Εάν δεν περιλαμβάνονται σειριακοί αριθμοί, τότε όλα τα πιστοποιητικά που ανήκουν στην καθορισμένη σειρά πιστοποιητικών θα ανακαλούνται.
Για περισσότερες πληροφορίες σχετικά με αυτήν την κλήση API, ρίξτε μια ματιά στο Τεκμηρίωση API.
Συμπέρασμα
Αυτό το άρθρο περιγράφει μια απλή διαδικασία έκδοσης και ανάκλησης πιστοποιητικού διακομιστή DV, ως απλοϊκό παράδειγμα των λειτουργιών που μπορείτε να εκτελέσετε μέσω του SWS API του SSL.com. Εμείς στο SSL.com ενθαρρύνουμε τη χρήση αυτοματισμού, όπου είναι δυνατόν, επειδή αφαιρεί την ταλαιπωρία της μη αυτόματης εκτέλεσης των ίδιων επαναλαμβανόμενων εργασιών και το πιο σημαντικό επιτρέπει ταχύτερους χρόνους απόκρισης σε περιπτώσεις έκτακτης ανάγκης ζήτημα εντροπίας σειριακού αριθμού).
Μη διστάσετε να πειραματιστείτε με το δικό μας Sandbox και API SWSκαι μην διστάσετε να επικοινωνήσετε με τους αντιπροσώπους υποστήριξης εάν αντιμετωπίσετε προβλήματα.
- Ο λογαριασμός σας SSL.com - Υποβολή α CSR
- Αποτυχία προ-δοκιμής ;!
- Ο λογαριασμός σας SSL.com - Επικυρώσεις
- Ο λογαριασμός σας SSL.com - Παραγγελίες
- Ο λογαριασμός σας SSL.com - Τομείς
- SSL /TLS Έκδοση πιστοποιητικού και ανάκληση με ACME
- Υποστηριζόμενα Cloud HSM για υπογραφή εγγράφων και υπογραφή κώδικα EV