Πως να προστατέψετε το Apache με Let’s Encrypt σε Ubuntu 18.04

To Let’s Encrypt είναι μία αρχή έκδοσης πιστοποιητικών (Certificate Authority – CA) η οποία προσφέρει έναν εύκολο τρόπο απόκτησης και εγκατάστασης δωρεάν TLS/SSL πιστοποιητικό.
Προαπαιτούμενα
- Έναν Ubuntu 18.04 server με έναν sudo not-root χρήστη.
- Ένα Domain Name. Σε αυτόν τον οδηγό θα χρησιμοποιήσουμε το your_domain για παράδειγμα.
- Να έχεις εγκαταστήσει το Apache (Αναλυτικός οδηγός) και να έχεις ένα virtual host file. Σε αυτόν τον οδηγό θα χρησιμοποιήσουμε το /etc/apache2/sites-available/your_domain.conf για παράδειγμα.
1ο βήμα: Εγκατάσταση Certbot
Το πρώτο βήμα για να αποκτήσουμε ένα πιστοποιητικό SSL είναι να κάνουμε εγκατάσταση το Certbot στον server μας.
Πρώτα προσθέτουμε το repository εκτελώντας την παρακάτω εντολή:
sudo add-apt-repository ppa:certbot/certbot
Θα πρέπει να πατήσετε ENTER για αποδοχή. Στην συνέχεια κάνουμε εγκατάσταση το Certbot με apt:
sudo apt install python-certbot-apache
To Certbot είναι τώρα έτοιμο για χρήση.
2ο βήμα: Εγκατάσταση του πιστοποιητικού SSL.
Βεβαιωθείτε ότι έχετε το σωστό ServerName στο .conf αρχείο σας εκτελώντας την παρακάτω εντολή:
sudo nano /etc/apache2/sites-available/your_domain.conf
Βρείτε την γραμμή που έχει το ServerName. Θα πρέπει να μοιάζει σαν αυτό:
...
ServerName your_domain;
...
όπου your_domain το Domain σας. Εάν είναι σωστό κλείστε το αρχείο και συνεχίστε παρακάτω, εάν όχι αλλάξτε το και σώστε το αρχείο και έπειτα εκτελέστε τις παρακάτω εντολές:
sudo apache2ctl configtest
Εάν λάβετε κάποιο μήνυμα σφάλματος διορθώστε το αρχείο. Αλλιώς συνεχίστε με:
sudo systemctl reload apache2
3ο βήμα: Παραχωρήστε HTTPS από το Firewall σας.
Εάν έχετε το ufw firewall ενεργό θα πρέπει να επιτρέψετε HTTPS πρόσβαση.
Μπορείτε να δείτε την κατάσταση πληκτρολογώντας την παρακάτω εντολή:
sudo ufw status
Μάλλον θα έχει σαν έξοδο το παρακάτω:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache (v6) ALLOW Anywhere (v6)
Για να επιτρέψουμε HTTPS πρόσβαση πληκτρολογούμε τις παρακάτω εντολές:
sudo ufw allow 'Apache Full'
sudo ufw delete allow 'Apache'
Ελέγχοντας την κατάσταση του ufw firewall θα πάρουμε το παρακάτω αποτέλεσμα:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache Full ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache Full (v6) ALLOW Anywhere (v6)
Απόκτηση SSL πιστοποιητικού.
Για να αποκτήσουμε το πιστοποιητικό μας εκτελούμε την παρακάτω εντολή:
sudo certbot --apache -d your_domain -d www.your_domain
Αντικαταστήστε το you_domain με το Domain σας.
Εάν είναι η πρώτη φορά που τρέχετε το certbot θα σας εμφανίσει μήνυμα αποδοχής των όρων. Αφού κάνετε αποδοχή θα σας εμφανίσει το παρακάτω μήνυμα για να επιλέξετε ανάμεσα στις 2 ρυθμίσεις που έχει, η πρώτη είναι να μην γίνεται redirect και η δεύτερη είναι να γίνεται:
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel):
Επιλέξτε ένα από τα δύο και πατήστε ENTER. Στο τέλος θα σας εμφανίσει ένα μήνυμα όπως το παρακάτω:
IMPORTANT NOTES:
- Congratulations! Your certificate and chain have been saved at:
/etc/letsencrypt/live/your_domain/fullchain.pem
Your key file has been saved at:
/etc/letsencrypt/live/your_domain/privkey.pem
Your cert will expire on 2019-07-23. To obtain a new or tweaked
version of this certificate in the future, simply run certbot again
with the "certonly" option. To non-interactively renew *all* of
your certificates, run "certbot renew"
- Your account credentials have been saved in your Certbot
configuration directory at /etc/letsencrypt. You should make a
secure backup of this folder now. This configuration directory will
also contain certificates and private keys obtained by Certbot so
making regular backups of this folder is ideal.
- If you like Certbot, please consider supporting our work by:
Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate
Donating to EFF: https://eff.org/donate-le
5ο βήμα: Αυτόματη ανανέωση.
Για να κάνουμε τεστ την αυτόματη ανανέωση των πιστοποιητικών μας εκτελούμε την παρακάτω εντολή:
sudo certbot renew --dry-run
Εάν δεν εμφανιστεί κάποιο λάθος τότε είστε έτοιμοι.!!