Apache2: Zielona kłódeczka, czyli poprawnie skonfigurowany HTTPS

Aby osiągnąć tak zwaną „zieloną kłódeczkę” w przeglądarce dla Naszej strony, musimy posiadać odpowiednie moduły dla Apache2 oraz co najważniejsze poprawnie podpisane certyfikaty przez organizację wskazaną podmioty o tym decydujące (aka trzeba zapłacić za to by być takim dystrybutorem certyfikatów). Właściwie jakiś czas temu przed rokiem 2016 można było właśnie kupić taki podpisany certyfikat lub wygenerować swoje certyfikaty, niestety realnie druga opcją była kierowana do developerów, ponieważ, aby uzyskać „zieloną kłódkę” należało zaimportować taki certyfikat i dodać do go „zaufanych nadrzędnych certyfikatów”. Na szczęście od roku 2016, dzięki uprzejmości fundacji ISRG, w której w skład wchodzą: Electronic Frontier Foundation (EFF), Mozilla Foundation, Akami oraz Cisco Systems powstała projekt o nazwie Let’sEncrypt. Inicjatywa ta pozwoliła na generowanie dla dowolnej domeny certyfikaty, który był podpisany przez Let’sEncrypt, który zapłacił za właśnie taką możliwość, w zamian nie pobierając opłat.

Dlatego zapraszam do instalacji aplikacji, która będzie dla Nas generować nowe certyfikaty i przedłużać automatycznie stare.

  1. Instalacja serwisu oraz wtyczki na potrzeby Apache2
apt-get install certbot python3-certbot-apache

2. Wygenerowanie pierwszego certyfikaty dla Naszej strony skonfigurowanej w Apache2

certbot --apache -d nazwa_domeny
# zostaniemy poproszeni za pierwszym razem o podanie adresu kontaktowego
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel): nasze@email.kontaktowy
# zostaniemy poproszeni o zapoznanie się z Regulaminem
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server at
https://acme-v02.api.letsencrypt.org/directory
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
(A)gree/(C)ancel: A
# kolejnie, zgoda na przesyłanie "newsów" od partnerów
Would you be willing to share your email address with the Electronic Frontier
Foundation, a founding partner of the Let's Encrypt project and the non-profit
organization that develops Certbot? We'd like to send you email about our work
encrypting the web, EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
(Y)es/(N)o: Y - jeżeli tak, N - jeżeli nie

# Dzięki wtyczce python3-certbot-apache, certbot może zaktualizować nasz plik o potrzebne wpisy dotyczące SSL, musimy zdecydować czy cały ruch z HTTP ma być przekierowany na HTTPS, czy nie (będziemy ręcznie konfigurować sobie np. zupełnie inną stronę po https, lub przekierowanie gdzie indziej)

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):
1 - jeżeli ruch nie ma być przekierowany, 2 - jeżeli ma

# Jeżeli wybierzemy 2, zobaczymy że certbot utworzył nowy plik konfiguracyjny dla Apache
Redirecting vhost in /etc/apache2/sites-enabled/nazwa_strony.conf to ssl vhost in /etc/apache2/sites-available/nazwa_strony-le-ssl.conf

3. Weryfikacja, że nasza strona korzysta z SSL dla HTTP czyli HTTPS

# w przeglądarce wpisujemy
http://nasza_domena

# powinniśmy zostać przekierowani na https://naza_domena oraz powinniśmy zostać powitani kłódeczką(zieloną/szarą) lub tarczą.

4. Automatyczne odnawianie certyfikatów

crontab -e
# dodajmy taki wpis (codziennie o godzinie 1:00 spróbuje odnowić certyfikaty)
0 1 * * * certbot renew

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

*