Aby wygenerować i zainstalować certyfikat TLS/SSL na serwerze z systemem Linux, stosuje się kilka metod – najpopularniejsze obejmują użycie darmowego certyfikatu z Let’s Encrypt (przy pomocy narzędzia Certbot) lub samodzielne wygenerowanie certyfikatu typu self-signed za pomocą OpenSSL. Poniżej znajdziesz szczegółowy poradnik krok po kroku dla obu wariantów, wraz z wyjaśnieniami wszystkich zagadnień technicznych.
1. Podstawowe pojęcia
- Certyfikat TLS/SSL – plik cyfrowy umożliwiający nawiązanie szyfrowanego połączenia TLS/SSL między serwerem a klientem (np. przeglądarką).
- Klucz prywatny – plik przechowywany wyłącznie na serwerze; nigdy nie udostępniaj go nikomu.
- Klucz publiczny/certyfikat – plik udostępniany klientom; potwierdza tożsamość serwera.
2. Wariant I – Darmowy certyfikat TLS/SSL z Let’s Encrypt (najlepszy wybór dla produkcyjnych stron)
Krok 1 – Instalacja Certbot
Certbot jest rekomendowanym klientem Let’s Encrypt, pozwala na automatyczne generowanie i odnawianie certyfikatów.
Na Debian/Ubuntu:
sudo apt update sudo apt install certbot python3-certbot-apache # Dla Apache sudo apt install certbot python3-certbot-nginx # Dla Nginx
Na CentOS/RHEL:
sudo dnf install certbot python3-certbot-apache # Dla Apache sudo dnf install certbot python3-certbot-nginx # Dla Nginx
Krok 2 – Wygenerowanie certyfikatu
Dla Apache:
sudo certbot --apache
Dla Nginx:
sudo certbot --nginx
Certbot poprosi o podanie domeny i przeprowadzi szybką weryfikację własności.
Możliwe tryby weryfikacji –
- Automatyczny – jeśli serwer WWW jest poprawnie skonfigurowany.
- Ręczny – np. poprzez dodanie rekordów DNS.
Krok 3 – Test i automatyczne odnawianie
Certyfikaty Let’s Encrypt są ważne 90 dni, ale Certbot konfiguruje automatyczne odnawianie:
sudo certbot renew --dry-run
Sprawdzisz w ten sposób poprawność odnowienia.
3. Wariant II – Samodzielne wygenerowanie certyfikatu (self-signed) – do testów lub usług lokalnych
Krok 1 – Utworzenie prywatnego klucza
sudo openssl genrsa -out /etc/ssl/private/tls.key 2048
Krok 2 – Utworzenie certyfikatu podpisanego własnoręcznie
sudo openssl req -new -x509 -key /etc/ssl/private/tls.key -out /etc/ssl/certs/tls.crt -days 365
Podczas generowania zostaniesz poproszony o wypełnienie formularza (kraj, organizacja, Common Name = nazwa domeny lub IP serwera).
Krok 3 – Weryfikacja poprawności certyfikatu
openssl x509 -in /etc/ssl/certs/tls.crt -text -noout
4. Instalacja certyfikatu i konfiguracja serwera WWW
Apache
- Edytuj plik konfiguracyjny SSL, np.
/etc/apache2/sites-available/default-ssl.conf
(Ubuntu/Debian) lub/etc/httpd/conf.d/ssl.conf
(CentOS):SSLCertificateFile /etc/ssl/certs/tls.crt SSLCertificateKeyFile /etc/ssl/private/tls.key
- Włącz moduł SSL (jeśli jest wyłączony) i restartuj serwer:
sh sudo a2enmod ssl sudo systemctl restart apache2
Nginx
-
Edytuj konfigurację serwera (np.
/etc/nginx/sites-available/default
):ssl_certificate /etc/ssl/certs/tls.crt; ssl_certificate_key /etc/ssl/private/tls.key;
-
Restartuj usługę:
sh sudo systemctl restart nginx
5. Wskazówki i bezpieczeństwo
- Klucz prywatny przechowuj w katalogu o ograniczonym dostępie, np.
/etc/ssl/private
, z uprawnieniami 600. - Jeżeli korzystasz z certyfikatu self-signed, przeglądarki wyświetlą ostrzeżenie o niezaufanym połączeniu.
- Let’s Encrypt to obecnie najpopularniejszy bezpłatny, automatyczny i powszechnie akceptowany CA.
- Znane narzędzia online do generacji certyfikatów to m.in. ZeroSSL – pozwala tworzyć certyfikaty także z poziomu WWW.
6. Najczęstsze problemy
- Brak dostępu do portu 80 lub 443 uniemożliwi automatyczną weryfikację Let’s Encrypt.
- Niepoprawna konfiguracja domeny (np. DNS nie wskazuje na Twój serwer) zatrzyma proces wydawania certyfikatu.
- Certyfikat self-signed jest przydatny wyłącznie na potrzeby testów lub sieci lokalnej; produkcyjne WWW należy zabezpieczać certyfikatem zaufanym (Let’s Encrypt lub komercyjnym).
7. Dodatkowe narzędzia
- Certbot (CLI, Linux & Windows)
- ZeroSSL (WWW, do trzech darmowych certyfikatów na 90 dni)
- OpenSSL (CLI, każde distro)
Ten poradnik obejmuje najważniejsze sposoby generowania certyfikatu TLS/SSL, rekomendowane narzędzia, szczegóły techniczne i instrukcje dla serwerów Apache/Nginx na Linuksie. Jeśli chcesz automatyzować i regularnie odnawiać certyfikat – wybierz Let’s Encrypt i Certbot. Jeśli potrzebujesz tylko do testów – OpenSSL i certyfikat self-signed w zupełności wystarczy.