SWS API SSL.com - Εισαγωγή

Η διαχείριση μεγάλου αριθμού πιστοποιητικών μπορεί να είναι πολύ ενοχλητική. Τυχαία συμβάντα, όπως η πρόσφατη βιομηχανία ζήτημα εντροπίας σειριακού αριθμού, ενδέχεται να απαιτούν από τους διαχειριστές να ανακαλούν και να επανεκδίδουν χειροκίνητα εκατοντάδες πιστοποιητικά ταυτόχρονα. Οι δικοί μας πράκτορες υποστήριξης και διαχειριστές το έχουν βιώσει αυτό στο παρελθόν, γεγονός που παρακίνησε την 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, μπορείτε στη συνέχεια να μετακινήσετε τον κωδικό σας στην παραγωγή και να είστε βέβαιοι ότι τα σενάριά σας δεν θα αποτύχουν.

ΣΗΜΕΊΩΣΗ: Αυτό το άρθρο έχει αναπτυχθεί για το Sandbox και μπορείτε να πειραματιστείτε με οποιαδήποτε από τις κλήσεις API που περιέχονται σε αυτό το έγγραφο.

Το API παραγωγής βρίσκεται στην ακόλουθη διεύθυνση URL:

https://sws.sslpki.com/

Για να εκτελέσετε κλήσεις API στο Sandbox, πρέπει να αλλάξετε μόνο το όνομα τομέα, όπως φαίνεται στο παρακάτω απόσπασμα:

https://sws-test.sslpki.com/

Προετοιμάστε το περιβάλλον

Πριν ξεκινήσετε να παίζετε με το API, πρέπει πρώτα να προετοιμάσετε ένα εργασιακό περιβάλλον. Τα εργαλεία που θα χρησιμοποιήσουμε σε αυτό το σεμινάριο είναι ένα τερματικό Linux και ο αξιόπιστος επεξεργαστής κειμένου σας.

ΣΗΜΕΊΩΣΗ: Αυτές οι οδηγίες έχουν γραφτεί για τη βανίλια Ubuntu Linux διανομή, το οποίο είναι ένα τυπικό περιβάλλον ανάπτυξης που μπορεί να συναντήσει κανείς στον πραγματικό κόσμο. Τούτου λεχθέντος, τα σενάρια που παρέχονται σε αυτό το έγγραφο λειτουργούν επίσης στα Windows μέσω Cygwin.

Το πρώτο πράγμα που θα χρειαστείτε είναι ένας κατάλογος για όλα τα απαραίτητα αρχεία. Για λόγους χρησιμότητας, θα αναφερθούμε σε αυτόν τον κατάλογο ως 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.

ΣΗΜΕΊΩΣΗ: Στα Windows, θα πρέπει να εντοπίσετε το αρχείο ZIP, να κάνετε διπλό κλικ σε αυτό και να εξαγάγετε τα αρχεία στον κατάλογο εργασίας.
$ 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.

Σημείωση: Βεβαιωθείτε ότι έχετε καταργήσει όλους τους χαρακτήρες νέας γραμμής από το CSR πριν την προσθέσετε στην εντολή. Οι νέες γραμμές χρησιμοποιούνται για να δώσουν εντολή στο τερματικό να επεξεργαστεί το κείμενο που έχει εισαχθεί μέχρι τον χαρακτήρα νέας γραμμής. Εάν αφήσετε τους χαρακτήρες, ενδέχεται να αποτύχουν οι εντολές cURL.

Με τα πάντα έτοιμα, είστε πλέον έτοιμοι να δημιουργήσετε την παραγγελία σας. Το 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! Εάν έχετε απορίες, επικοινωνήστε μαζί μας μέσω email στο Support@SSL.com, κλήση 1-877-SSL-SECUREή απλώς κάντε κλικ στο σύνδεσμο συνομιλίας κάτω δεξιά αυτής της σελίδας. Μπορείτε επίσης να βρείτε απαντήσεις σε πολλές κοινές ερωτήσεις υποστήριξης στο βάση γνώσεων.
Twitter
Facebook
LinkedIn
Reddit
Email

Μείνετε ενημερωμένοι και ασφαλείς

SSL.com είναι παγκόσμιος ηγέτης στον τομέα της κυβερνοασφάλειας, PKI και ψηφιακά πιστοποιητικά. Εγγραφείτε για να λαμβάνετε τα πιο πρόσφατα νέα του κλάδου, συμβουλές και ανακοινώσεις προϊόντων από SSL.com.

Θα θέλαμε τα σχόλιά σας

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