Διαμόρφωση Apache με SSL
Οι ακόλουθες οδηγίες προϋποθέτουν ότι θέλετε να εκτελέσετε έναν ασφαλή διακομιστή (στη θύρα 443
) και έναν κανονικό διακομιστή (στη θύρα 80
). Πρώτον, πρέπει να ρυθμίσετε τον διακομιστή ώστε να ακούει και στις δύο θύρες. Είτε επεξεργαστείτε /etc/apache2/ports.conf
(στο Debian, αυτό περιλαμβάνεται στο apache2.conf
ή επεξεργαστείτε /etc/apache2/apache2.conf
απευθείας για να συμπεριλάβετε τις γραμμές:
Ακούστε 80 Ακούστε 443
Στη συνέχεια, επεξεργαστείτε /etc/apache2/sites-enabled/yoursite
για να χρησιμοποιήσετε τις ρυθμίσεις SSL. Ο διαχωρισμός των τακτικών και ασφαλών ρυθμίσεων διακομιστή με τη χρήση VirtualHosts είναι η ευκολότερη επιλογή όσον αφορά τη συντήρηση. Οποιαδήποτε διαμόρφωση εκτός των ενοτήτων VirtualHosts (όπως η ρύθμιση του ServerAdmin) θα εφαρμοστεί και στα δύο (και σε οποιαδήποτε άλλη) VirtualHosts.
Οι εκδόσεις του Apache 2.4.8 και άνω αναμένουν ότι το πιστοποιητικό διακομιστή σας θα συνδυαστεί με τυχόν ενδιάμεσα πιστοποιητικά σε ένα αρχείο. Για να κατεβάσετε ένα αλυσοδεμένο αρχείο από το SSL.com, επιλέξτε το Nginx
σύνδεσμος λήψης στον λογαριασμό της πύλης σας:
Εναλλακτικά, μπορείτε να συνδυάσετε το υπάρχον πιστοποιητικό και τα ενδιάμεσα αρχεία σας με μια εντολή όπως η ακόλουθη:
$ cat /etc/ssl/private/ca-bundle-client.crt >> /etc/ssl/private/yourdomain.crt
Προσθέστε την ακόλουθη ενότητα στο αρχείο ρυθμίσεων:
# ================================================= # SSL /TLS ρυθμίσεις # ================================================ = NameVirtualHost *: 443 DocumentRoot "/ var / www / yoursite" SSLEngine στο SSLCertificateFile /etc/ssl/private/yourdomain.chained.crt SSLCertificateKeyFile /etc/ssl/private/myserver.key
Μερικές σημειώσεις σχετικά με αυτήν τη διαμόρφωση:
SSLEngine
πρέπει να είναι ενεργοποιημένη έτσι ώστε ο διακομιστής να χρησιμοποιεί SSL.DocumentRoot
ορίζει τον ριζικό κατάλογο για αυτόν τον εικονικό κεντρικό υπολογιστή. Αυτό σημαίνει ότι μπορείτε να διαχωρίσετε το ασφαλές περιεχόμενο εντελώς από το κανονικό περιεχόμενο.SSLCertificateFile
θα πρέπει να οριστεί στη θέση όπου τοποθετείτε το αρχείο με το πιστοποιητικό διακομιστή και την ενδιάμεση αλυσίδα.SSLCertificateKeyFile
θα πρέπει να οριστεί στη θέση όπου τοποθετείτε το αρχείο ιδιωτικού κλειδιού.
Προσθέστε την ακόλουθη ενότητα στο αρχείο ρυθμίσεων:
# ================================================= # SSL /TLS ρυθμίσεις # ================================================ = ΌνομαVirtualHost *: 443 DocumentRoot "/ var / www / yoursite" SSLEngine on SSLCertificateFile /etc/ssl/private/yourdomain.crt SSLCertificateKeyFile /etc/ssl/private/myserver.key SSLCertificateChainFile / etc / ssl / etc / ssl / κ.λπ. πελάτης.crt
Μερικές σημειώσεις σχετικά με αυτήν τη διαμόρφωση:
SSLEngine
πρέπει να είναι ενεργοποιημένη έτσι ώστε ο διακομιστής να χρησιμοποιεί SSL.DocumentRoot
ορίζει τον ριζικό κατάλογο για αυτόν τον εικονικό κεντρικό υπολογιστή. Αυτό σημαίνει ότι μπορείτε να διαχωρίσετε το ασφαλές περιεχόμενο εντελώς από το κανονικό περιεχόμενο.SSLCertificateFile, SSLCertificateChainFile,
καιSSLCertificateKeyFile
θα πρέπει να οριστεί στις τοποθεσίες όπου τοποθετείτε το πιστοποιητικό σας, τα αρχεία ενδιάμεσου και ιδιωτικού κλειδιού, αντίστοιχα.
Για να εκτελέσετε τον κανονικό διακομιστή στη θύρα 80, προσθέστε την ακόλουθη ενότητα στο αρχείο διαμόρφωσης:
NameVirtualHost *: 80 DocumentRoot "/ var / www / yoursite" # Διαμόρφωση καταλόγου για συγκεκριμένους κεντρικούς υπολογιστές, επιλογές κ.λπ. # Οι περισσότερες από αυτές τις επιλογές είναι πιθανό να οριστούν εκτός των ενοτήτων # VirtualHosts.
Αφού αποθηκεύσετε το επεξεργασμένο αρχείο διαμόρφωσης, κάντε επανεκκίνηση του διακομιστή ιστού. Εάν χρησιμοποιήσατε μια φράση πρόσβασης κατά τη δημιουργία του πιστοποιητικού σας, θα πρέπει να το εισαγάγετε όταν σας ζητηθεί.
Δοκιμές
Δημιουργήστε μια βασική σελίδα index.html όπου κι αν βρίσκεται ο ριζικός κατάλογος του διακομιστή ιστού σας, εάν δεν έχετε ήδη περιεχόμενο εκεί.
Στη συνέχεια, τοποθετήστε το πρόγραμμα περιήγησης ιστού στο https://www.yoursite.com
. Θα πρέπει να δείτε μια σύνδεση SSL να ανοίγει και να παραδίδεται η σελίδα. Εάν χρησιμοποιείτε ένα αυτο-υπογεγραμμένο πιστοποιητικό, το πρόγραμμα περιήγησής σας θα εμφανίσει μια ειδοποίηση που σας προειδοποιεί ότι δεν είναι δυνατή η επαλήθευση της ταυτότητας του διακομιστή. Μπορείτε να επιλέξετε να δείτε και να αποδεχτείτε το πιστοποιητικό. Εάν χρησιμοποιείτε εξωτερικό πιστοποιητικό, όλα θα πρέπει να συμβούν χωρίς παρέμβαση.
Βεβαιωθείτε επίσης ότι δεν έχετε πρόσβαση στο προστατευμένο περιεχόμενο χρησιμοποιώντας το http: //. Εάν προσπαθήσετε, θα λάβετε ένα μήνυμα σφάλματος.
Αντιμετώπιση προβλημάτων
Εάν δεν λειτουργεί όπως αναμένεται, ελέγξτε πρώτα ότι ο διακομιστής σας λειτουργεί πραγματικά χρησιμοποιώντας ps -a | grep apache
. Εάν αυτό δεν επιστρέψει τίποτα, δοκιμάστε να το επανεκκινήσετε και ελέγξτε για μηνύματα σφάλματος στο τερματικό.
Ελέγξτε επίσης ότι τα δικαιώματα στο κλειδί και τα αρχεία πιστοποιητικών έχουν οριστεί σωστά (δείτε παραπάνω), καθώς και τα δικαιώματα στο δοκιμαστικό αρχείο HTML και στον γονικό κατάλογό του.
Στη συνέχεια, ελέγξτε τα αρχεία καταγραφής. Θα πρέπει να ελέγξετε τόσο τα κύρια αρχεία καταγραφής διακομιστή όσο και τα αρχεία καταγραφής SSL που έχετε ρυθμίσει στο αρχείο ρυθμίσεων παραπάνω. Εάν δεν έχετε τίποτα χρήσιμο, δοκιμάστε να αλλάξετε την τιμή LogLevel στο αρχείο ρυθμίσεων Apache2 σε "εντοπισμό σφαλμάτων", επανεκκινήστε το Apache2 και δοκιμάστε ξανά. Αυτό θα δώσει περισσότερα δεδομένα αρχείου καταγραφής.
Εάν χρησιμοποιείτε και έναν κανονικό διακομιστή ιστού στη θύρα 80, δοκιμάστε να ανακτήσετε μια δοκιμαστική σελίδα μέσω http: // αντί https: // για να προσδιορίσετε αν το πρόβλημα είναι με τον διακομιστή ιστού ή με τη σύνδεση SSL. Σημειώστε ότι στην παραπάνω ρύθμιση, ο ριζικός κατάλογος του διακομιστή ιστού είναι διαφορετικός για τα http: // και https: //, επομένως δεν θα έχετε (ή δεν πρέπει!) Να έχετε πρόσβαση στο ίδιο περιεχόμενο. Εάν, ωστόσο, η δοκιμαστική σελίδα σας στον κατάλογο ρίζας http: // λειτουργεί καλά και η σελίδα δοκιμής στον ριζικό κατάλογο https: // δεν λειτουργεί, τότε αυτό μπορεί να σας βοηθήσει να εντοπίσετε το πρόβλημα.
Εάν το πρόβλημα είναι η σύνδεση SSL, ένα χρήσιμο εργαλείο είναι s_client
, το οποίο είναι ένα διαγνωστικό εργαλείο για την αντιμετώπιση προβλημάτων TLS/ SSL συνδέσεις. Η βασική χρήση είναι: /usr/bin/openssl s_client -connect localhost:443
. Υπάρχουν επίσης πολλές άλλες επιλογές, για τις οποίες μπορείτε να ελέγξετε την τεκμηρίωση. Εάν λάβετε μηνύματα σφάλματος, αυτό θα σας βοηθήσει να εντοπίσετε το πρόβλημα.