Πώς να ελέγξετε τις ασφαλείς (https) υπηρεσίες από την localhost

Ως προγραμματιστής, εάν θέλετε να ενσωματώσετε και να δοκιμάσετε τις ασφαλείς υπηρεσίες τρίτων με τον διακομιστή που εκτελείται σε ένα τοπικό μηχάνημα, πρέπει να εγκαταστήσετε τοπικά πιστοποιητικό ασφαλείας. Για παράδειγμα, εάν ενσωματώνετε ένα API πύλης πληρωμής μέσω του https, ο τοπικός σας διακομιστής θα πρέπει επίσης να υποστηρίζει το https. Μπορείτε να χρησιμοποιήσετε τον αντίστροφο διακομιστή μεσολάβησης όπως το ngrok για να ρυθμίσετε ένα ασφαλές τούνελ, αλλά η έκθεση του μηχανήματος ανάπτυξης στο δημόσιο δίκτυο είναι επικίνδυνη. Σε αυτό το άρθρο, θα σας εξηγήσω πώς να δημιουργήσετε και να εγκαταστήσετε Πιστοποιητικά SSL στο τοπικό σύστημα Ubuntu, ώστε να μπορείτε να δοκιμάσετε αυτές τις ενσωματώσεις.

Η χρήση πιστοποιητικών από πραγματικές αρχές πιστοποίησης (CA) για την ανάπτυξη μπορεί να είναι επικίνδυνη ή αδύνατη (για κεντρικούς υπολογιστές όπως localhost ή 127.0.0.1). Τα αυτοφωτισμένα πιστοποιητικά ενδέχεται να προκαλέσουν σφάλματα εμπιστοσύνης Το mkcert είναι ένα απλό εργαλείο για τη δημιουργία τοπικών πιστοποιητικών ανάπτυξης. Δεν απαιτεί διαμόρφωση.

Το mkcert δημιουργεί και εγκαθιστά αυτόματα την τοπική ΑΠ στο κατάστημα ρίζας του συστήματος και δημιουργεί πιστοποιητικό τοπικής εμπιστοσύνης.

Προϋποθέσεις

  1. Ubuntu Machine
  2. Web Server (Apache2 / Nginx)
  3. certutil πακέτο

Εγκαταστήστε certutil

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

Στον εξυπηρετητή μας Ubuntu, μπορούμε να το εγκαταστήσουμε τρέχοντας την ακόλουθη εντολή:

$ sudo apt-get εγκαταστήστε -y libnss3-εργαλεία

Λήψη και εγκατάσταση του εργαλείου mkcert

Ανάλογα με την πλατφόρμα μας και την απαίτησή μας πρέπει να κατεβάσετε το δυαδικό αρχείο για το εργαλείο mkcert.

Εδώ είναι πώς να το κάνουμε για το Ubuntu:

$ mkdir ~ / mkcert && \
  cd ~ / mkcert && \
  wget https://github.com/FiloSottile/mkcert/releases/download/v1.1.2/mkcert-v1.1.2-linux-amd64 && \
  mv mkcert-v1.1.2-linux-amd64 mkcert && \
  chmod + x mkcert

Δημιουργία πιστοποιητικού

Μπορούμε να δημιουργήσουμε την τοπική ΑΠ για τη δημιουργία των πιστοποιητικών μας με τις εξής εντολές:

# mkcert -install
$ ./mkcert localhost

Για να ελέγξετε είναι το πιστοποιητικό που παράγεται:

$ ls -l

-rw ------- 1 satish satish 1708 Σεπ 20 18:10 localhost-key.pem
-rw-r-r-- 1 satish satish 1484 Sep 20 18:10 localhost.pem
-rwxr-xr-x 1 ικανοποιημένος ικανοποιημένος 4455604 Αυγ 25 22:30 mkcert *

Ενεργοποιήστε το πιστοποιητικό στον τοπικό διακομιστή Web

Το επόμενο βήμα είναι να εγκαταστήσετε τον διακομιστή ιστού και να ενεργοποιήσετε το SSL για να χρησιμοποιήσετε αυτό το πιστοποιητικό εξέλιξης σε τοπικό επίπεδο.

Εγκατέστησα nginx και ενεργοποίησα το SSL χρησιμοποιώντας τις ακόλουθες εντολές:

# apt install -y nginx
# systemctl ξεκινήσει nginx

Επεξεργαστείτε το προεπιλεγμένο αρχείο που βρίσκεται στο / etc / nginx / sites-available / default και προσθέστε το πιστοποιητικό SSL που δημιουργείται τοπικά και τα βασικά στοιχεία:

server {
    ακούστε 80;
    server_name localhost;
    επιστροφή 301 https: // $ host $ request_uri;
}}
server {
    ακούστε 443 ssl;
    server_name localhost;
# SSL
    ssl_certificate /  /localhost.pem;
    ssl_certificate_key /  /localhost-key.pem;
τοποθεσία / {
        root / usr / share / nginx / html.
        ευρετήριο index.html index.htm;
    }}
}}

Τώρα μπορείτε να κάνετε επανεκκίνηση του διακομιστή nginx για να κάνετε αυτές τις αλλαγές αποτελεσματικές:

# systemctl επανεκκίνηση nginx

Δοκιμή

Δοκιμάστε τα πάντα λειτουργώντας καλά περιηγώντας το https: // localhost για να επιβεβαιώσετε ότι λειτουργεί:

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

Προειδοποίηση: Το mkcert προορίζεται αποκλειστικά για αναπτυξιακούς σκοπούς και δεν συνιστάται για παραγωγή.

Ποιες άλλες μέθοδοι χρησιμοποιήσατε για να δοκιμάσετε τις ενσωματώσεις υπηρεσιών https από την τοπική μηχανή σας;

Στα 47 δισεκατομμύρια, ειδικευόμαστε στην παροχή βοήθειας στις εταιρείες που κατασκευάζουν τρομερά προϊόντα. Αν ψάχνετε για μια έμπειρη ομάδα για να δημιουργήσετε την πλήρη λύση σας, παρακαλούμε επικοινωνήστε μαζί μας στο [email protected]