Własny Serwer

Własny serwer Red Hat – cz.3: certyfikat TSL/SSL

Ostatnia aktualizacja: 31 stycznia 2025, 11:28



 

W pierwszej części serii cyklu Własny Serwer Red Hat skonfigurowaliśmy serwer www za pomocą Apache (oraz opcjonalnie Nginx), a w drugiej zainstalowaliśmy interpretator PHP oraz system bazodanowy MariaDB.

W części trzeciej zainstalujemy certyfikat TSL/SSL w dystrybucji kompatybilnej z Red Hat/CentOS/Alma/Rocky Linux.

Co to jest TSL/SSL ?

Z Wikipedii:

TLS (ang. Transport Layer Security) – przyjęte jako standard w Internecie rozwinięcie protokołu SSL (ang. Secure Socket Layer), zaprojektowanego pierwotnie przez Netscape Communications. TLS zapewnia poufność i integralność transmisji danych, a także uwierzytelnienie serwera, a niekiedy również klienta. Opiera się na szyfrowaniu asymetrycznym oraz certyfikatach X.509.

Do celów tego wpisu posłużymy się bezpłatnym certyfikatem Let’s Encrypt, który zainstalujemy za pomocą narzędzia „certbot”.

Instalacja
Upewnij się, że zapora ogniowa przepuszcza połączenie https.
firewall-cmd --zone=public --permanent --add-service=https
firewall-cmd --reload

W domyślnych repozytoriach Rocky Linux, na których pracujemy, nie ma pakietu certbot, należy dodać repozytoria „epel”.

Instalacja dla Apache

dnf install epel-release
dnf install certbot python3-certbot-apache
dnf install mod_ssl

Utwórz konfigurację dla SSL, np.:
nano /etc/httpd/conf.d/pavroo-ssl.conf

##### linuxiarze.pl ######
<IfModule mod_ssl.c>
<VirtualHost *:443>
ServerAdmin admin@pavroo.pl
ServerName linuxiarze.pl
ServerAlias www.linuxiarze.pl linuxiarze.pl
DocumentRoot /home/pavroo/public_html
<Directory /home/pavroo/public_html/>
Options All Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog /var/log/httpd/error-linuxiarze-pl.log
CustomLog /var/log/httpd/access-linuxiarze-pl.log combined
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/localhost.crt
SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
</VirtualHost>
</IfModule>

Jeśli certyfikat nie jest dostępny w podanych lokalizacjach, utwórz nowy:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/localhost.key -out /etc/pki/tls/certs/localhost.crt

Przeładuj Apache:
systemctl restart httpd

Teraz zainstaluj certyfikat TSL:
certbot --apache -d linuxiarze.pl -d www.linuxiarze.pl

Przeładuj Apache:
systemctl restart httpd

Instalacja dla Nginx

dnf install epel-release
dnf install certbot python3-certbot-nginx

Dodaj konfigurację dla SSL do istniejącego pliku, np.:
nano /etc/nginx/conf.d/pavroo.conf

server {
        listen 443 ssl http2;
        server_name linuxiarze.pl www.linuxiarze.pl;
        root /home/pavroo/public_html;
        index index.php index.html index.htm;
        ssl_certificate /etc/pki/tls/certs/localhost.crt;
        ssl_certificate_key /etc/pki/tls/private/localhost.key;
        location /
        {
        try_files $uri $uri/ =404;
        }
}

Jeśli certyfikat nie jest dostępny w podanych lokalizacjach, utwórz nowy:
openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/pki/tls/private/localhost.key -out /etc/pki/tls/certs/localhost.crt

Przeładuj Nginx:
systemctl restart nginx

Teraz zainstaluj certyfikat TSL:
certbot --nginx -d linuxiarze.pl -d www.linuxiarze.pl

Przeładuj Nginx:
systemctl restart nginx

Ważne !
Pamiętaj, że certyfikat od Let’s Encrypt jest przyznawany tylko na 3 miesiące. Przed upływem tego czasu trzeba go odnowić.

Ręczne odnowienie certyfikatu wszystkich zarejestrowanych domen
Odnowienie certyfikatu Let’s Encrypt dla Apache:
certbot renew --apache

Odnowienie certyfikatu Let’s Encrypt dla Nginx:
certbot renew --nginx

Automatyczne odnawianie certyfikatu
Proces odnawiania certyfikatu można zautomatyzować i przekazać do crona.
Dodaj nowe zadanie crona – zostanie uruchomione (przykładowo) raz w miesiącu, 1 dnia miesiąca o godz. 23.15:
crontab -e

Dla Apache:
15 23 1 * * certbot -q renew --apache

Dla Nginx:
15 23 1 * * certbot -q renew --nginx

W przypadku problemów lub niejasności odsyłam do stron man-a:
man certboot
man cron
man httpd
man nginx

Na tym zakończyliśmy trzecią część serii Własny Serwer Red Hat, w części czwartej zainstalujemy i skonfigurujemy serwer FTP.

Click to rate this post!
[Total: 0 Average: 0]

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna jest chroniona przez reCAPTCHA i Google Politykę Prywatności oraz obowiązują Warunki Korzystania z Usługi.

Skip to content