Przejdź do głównej zawartości

🔒 Jak wdrożyć HTTPS w Apache za pomocą mkcert – prosta i bezpieczna konfiguracja SSL

Bezpieczeństwo połączenia HTTPS to dziś standard — nawet w sieciach lokalnych i aplikacjach testowych. W tym poradniku pokażę Ci, jak w prosty sposób wdrożyć SSL w Apache z pomocą narzędzia mkcert, które tworzy w pełni zaufane certyfikaty lokalne — bez potrzeby kontaktu z Let’s Encrypt czy urzędami certyfikacji.


🧩 Dlaczego warto używać mkcert?

mkcert to lekkie narzędzie, które automatycznie generuje certyfikaty zaufane przez przeglądarkę — bez ostrzeżeń o „niebezpiecznym połączeniu”.

  • ✅ działa w sieci lokalnej,
  • ✅ nie wymaga dostępu do Internetu,
  • ✅ certyfikaty są natychmiast zaufane po instalacji CA,
  • ✅ idealne dla środowisk firmowych i intranetów.

⚙️ Krok 1: Instalacja Apache

sudo apt update
sudo apt install apache2 -y
sudo systemctl enable apache2
sudo systemctl start apache2

Po instalacji otwórz w przeglądarce: http://10.0.0.123 Powinna się wyświetlić strona powitalna Apache.


🔧 Krok 2: Instalacja mkcert

sudo apt install libnss3-tools wget -y
sudo wget -O /usr/local/bin/mkcert https://github.com/FiloSottile/mkcert/releases/latest/download/mkcert-linux-amd64
sudo chmod +x /usr/local/bin/mkcert
mkcert -version

🏗️ Krok 3: Utworzenie lokalnego urzędu certyfikacji (CA)

mkcert -install

To polecenie utworzy lokalny urząd CA i doda go do zaufanych w systemie. Pliki CA znajdują się w katalogu: ~/.local/share/mkcert/


📜 Krok 4: Generowanie certyfikatu SSL

sudo mkdir -p /etc/ssl/localCA
cd /etc/ssl/localCA
sudo mkcert 10.0.0.123 rcp.local

Powstaną dwa pliki:

  • 10.0.0.123+1.pem – certyfikat,
  • 10.0.0.123+1-key.pem – klucz prywatny.

🌐 Krok 5: Konfiguracja Apache

sudo a2enmod ssl
sudo nano /etc/apache2/sites-available/ssl-local.conf

Wklej poniższą konfigurację:

<VirtualHost *:443>
    ServerAdmin admin@local
    ServerName 10.0.0.123
    DocumentRoot /var/www/html

    SSLEngine on
    SSLCertificateFile /etc/ssl/localCA/10.0.0.123+1.pem
    SSLCertificateKeyFile /etc/ssl/localCA/10.0.0.123+1-key.pem

    <Directory /var/www/html>
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
sudo a2ensite ssl-local.conf
sudo systemctl reload apache2

🔁 Krok 6: Wymuszenie przekierowania HTTP → HTTPS (opcjonalnie)

sudo nano /etc/apache2/sites-available/000-default.conf

Dodaj wewnątrz sekcji <VirtualHost *:80>:

Redirect permanent / https://10.0.0.123/
sudo systemctl restart apache2

✅ Krok 7: Test połączenia

Otwórz w przeglądarce: https://10.0.0.123 Zobaczysz zieloną kłódkę 🔒 i komunikat o bezpiecznym połączeniu.


🧩 Krok 8: Zaufanie CA na innych komputerach

Aby inne komputery w sieci ufały Twoim certyfikatom, skopiuj i zainstaluj plik:

sudo -i
~/.local/share/mkcert/rootCA.pem

💻 Windows

  1. Kliknij dwukrotnie plik rootCA.pem
  2. Wybierz Zainstaluj certyfikatMaszyna lokalna
  3. Umieść w magazynie: Zaufane główne urzędy certyfikacji

🐧 Linux

sudo cp rootCA.pem /usr/local/share/ca-certificates/mkcert-rootCA.crt
sudo update-ca-certificates

🍎 macOS

Otwórz Keychain AccessSystem → Certificates → ImportujrootCA.pem → ustaw Always Trust.


🔄 Krok 9: Odnowienie certyfikatu

cd /etc/ssl/localCA
sudo mkcert 10.0.0.123 rcp.local
sudo systemctl restart apache2

🧰 Krok 10: Automatyczne odnawianie (opcjonalnie)

Utwórz skrypt /usr/local/bin/renew-https.sh:

#!/bin/bash
cd /etc/ssl/localCA
mkcert 10.0.0.123 rcp.local
CERT=$(ls -t 10.0.0.123+*.pem | head -n 1)
KEY=$(ls -t 10.0.0.123+*-key.pem | head -n 1)
sed -i "s|SSLCertificateFile .*|SSLCertificateFile /etc/ssl/localCA/$CERT|" /etc/apache2/sites-available/ssl-local.conf
sed -i "s|SSLCertificateKeyFile .*|SSLCertificateKeyFile /etc/ssl/localCA/$KEY|" /etc/apache2/sites-available/ssl-local.conf
systemctl restart apache2

Dodaj do crona, aby odnawiał się co 6 miesięcy:

sudo crontab -e
0 3 1 */6 * /usr/local/bin/renew-https.sh

🎯 Podsumowanie

EtapDziałanie
Instalacja mkcertmkcert -install
Generowanie certyfikatumkcert 10.0.0.123 rcp.local
Konfiguracja Apacheplik ssl-local.conf
Restart Apachesudo systemctl restart apache2
Dystrybucja CArootCA.pem na inne komputery
Odnowienieponownie mkcert

💡 Wnioski

Dzięki mkcert możesz w kilka minut uruchomić HTTPS w środowisku firmowym lub testowym. To rozwiązanie:

  • ✅ nie wymaga internetu,
  • ✅ jest w pełni darmowe,
  • ✅ generuje zaufane certyfikaty,
  • ✅ i można je zautomatyzować.

Jeśli tworzysz aplikacje webowe w sieci lokalnej — mkcert to must-have 🔐.

Komentarze

Popularne posty z tego bloga

API SHOPER

Jak korzystać z API Shoper - Kompletny przewodnik 1. Wprowadzenie API Shoper umożliwia zautomatyzowanie wielu operacji w Twoim sklepie internetowym, takich jak zarządzanie produktami, zdjęciami, zamówieniami i wieloma innymi elementami. W tym artykule pokażę Ci krok po kroku, jak połączyć się z API Shoper oraz wykonać podstawowe operacje, takie jak dodawanie produktów, zarządzanie zdjęciami i przypisywanie produktów powiązanych. 2. Autoryzacja - Uzyskanie Access Token Aby korzystać z API Shoper, najpierw musisz uzyskać access token : POST https://twojsklep.shoper.pl/webapi/oauth/token Content-Type: application/x-www-form-urlencoded grant_type=client_credentials&client_id=TWOJE_CLIENT_ID&client_secret=TWOJE_CLIENT_SECRET Przykład w PHP: <?php $client_id = 'TWOJE_CLIENT_ID'; $client_secret = 'TWOJE_CLIENT_SECRET'; $ch = curl_init('https://twojsklep.shoper.pl/webapi/oauth/token'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch...

Polityka wykonawcza skryptów w PowerShellu

Polityka wykonawcza (Execution Policy) w PowerShell – co to jest i jak ją zmienić? PowerShell to potężne narzędzie do automatyzacji i zarządzania systemem Windows. Jednak domyślne ustawienia bezpieczeństwa mogą uniemożliwić uruchamianie skryptów. W tym wpisie wyjaśniam, czym jest polityka wykonawcza (Execution Policy), jak ją sprawdzić i zmienić, aby móc swobodnie korzystać z PowerShell. Czym jest polityka wykonawcza (Execution Policy)? Polityka wykonawcza to mechanizm bezpieczeństwa w PowerShell, który kontroluje, jakie skrypty mogą być uruchamiane na systemie. Ma ona na celu zapobieganie przypadkowemu lub złośliwemu uruchomieniu niebezpiecznych skryptów. Dostępne polityki wykonawcze PowerShell oferuje kilka poziomów polityki wykonawczej: Restricted – domyślna polityka. Blokuje wszystkie skrypty PowerShell. Można uruchamiać tylko polecenia wprowadzane bezpośrednio w konsoli. AllSigned – pozwala na uruchamianie tylko skryptów pod...

Automatyczna instalacja Office przez GPO

Automatyczna instalacja Office przez GPO Wprowadzenie W środowisku firmowym, gdzie wiele komputerów pracuje w domenie, często pojawia się potrzeba automatycznej instalacji pakietu Office na stacjach roboczych. Jednym z najwygodniejszych sposobów realizacji tego zadania jest wykorzystanie polityk grupowych (GPO) oraz skryptów instalacyjnych. W tym artykule przeprowadzimy Cię krok po kroku przez cały proces. Problem z GPO - niepotrzebne ponowne uruchamianie instalacji Podczas konfiguracji polityki GPO do instalacji Office, może wystąpić problem, w którym skrypt uruchamia się za każdym razem podczas logowania . Dzieje się tak dlatego, że skrypt umieszczony w lokalizacji: Konfiguracja komputera -> Zasady -> Ustawienia systemu Windows -> Skrypty (Uruchamianie/Zamykanie) -> Uruchamianie ...będzie wykonywany przy każdym starcie systemu, co powoduje ponowną instalację Office. Jak rozwiązać problem? Trzy skuteczne metody 1. Warunkowe sprawdzenie instalacji Dodaj sprawd...