Lokalny rozwój HTTPS z użyciem samopodpisanego certyfikatu SSL
Podczas lokalnego rozwoju oraz testowania aplikacji webowych, symulowanie połączenia HTTPS – jak w środowisku produkcyjnym – jest niezwykle istotne. Mimo że samopodpisane certyfikaty SSL nie są zaufane przez publiczne urzędy certyfikacji (CA), stanowią one wygodne rozwiązanie zapewniające HTTPS w lokalnym środowisku developerskim. W tym artykule znajdziesz szczegółowe instrukcje generowania wydajnych i bezpiecznych samopodpisanych certyfikatów SSL ECC (Elliptic Curve Cryptography) za pomocą wbudowanego narzędzia OpenSSL w ServBay, a następnie ich konfiguracji na stronie lokalnej w ServBay. Jako przykład posłużą pliki i domena servbay.demo
.
Opanowanie konfiguracji HTTPS pozwala dokładnie przetestować m.in. zachowanie witryny w kontekście mieszanej treści, flag bezpieczeństwa dla cookies i innych aspektów bezpiecznej komunikacji.
Przegląd
Samopodpisany certyfikat to certyfikat SSL, który samodzielnie generujesz i podpisujesz, zamiast otrzymywać go od zaufanego zewnętrznego CA. Są one przydatne w sytuacjach, gdzie publiczne zaufanie nie jest wymagane, m.in.:
- środowiska developerskie,
- wewnętrzne serwery testowe,
- wewnętrzne aplikacje nieprzetwarzające poufnych danych.
ServBay posiada zintegrowane narzędzie OpenSSL, dzięki któremu łatwo wygenerujesz certyfikat bezpośrednio w terminalu.
Wymagania wstępne
- Zainstalowany i uruchomiony ServBay.
- Podstawowa znajomość obsługi terminala.
Krok 1: Generowanie samopodpisanego certyfikatu ECC SSL
Zalecamy korzystanie z certyfikatów ECC, ponieważ w porównaniu do tradycyjnych certyfikatów RSA gwarantują taki sam poziom bezpieczeństwa przy krótszych kluczach, szybszym podpisie i weryfikacji oraz mniejszym zużyciu zasobów.
Poniżej opisano szczegółowo proces generowania samopodpisanego certyfikatu ECC SSL:
Generowanie klucza prywatnego ECC
Otwórz terminal i uruchom poniższe polecenie, aby wygenerować klucz prywatny ECC o nazwie
servbay.demo.key
korzystający z krzywejprime256v1
:shopenssl ecparam -genkey -name prime256v1 -out servbay.demo.key
1openssl
: wywołanie narzędzia OpenSSL.ecparam
: obsługa parametrów ECC.-genkey
: generowanie klucza.-name prime256v1
: używana krzywa ECC;prime256v1
(NIST P-256) to popularna i bezpieczna opcja.-out servbay.demo.key
: nazwa pliku wyjściowego z kluczem prywatnym.
Generowanie żądania podpisania certyfikatu (CSR)
Na podstawie wygenerowanego klucza
servbay.demo.key
stwórz plik CSR (Certificate Signing Request) o nazwieservbay.demo.csr
. CSR zawiera informacje dotyczące certyfikatu (takie jak domena czy organizacja) i jest podpisany twoim kluczem prywatnym.shopenssl req -new -key servbay.demo.key -out servbay.demo.csr
1Po wykonaniu polecenia OpenSSL poprosi o uzupełnienie kilku pól formularza. Najważniejsze jest pole
Common Name (e.g. server FQDN or YOUR name)
, w którym należy wpisać swoją domenę lokalną, np.servbay.demo
. Pozostałe pola można zostawić domyślne lub wypełnić przykładowo.Przykładowe wprowadzenie danych:
Country Name (2 letter code) [AU]:CN # Kod kraju, np. CN (Chiny) State or Province Name (full name) [Some-State]:Hong Kong # Województwo/stan Locality Name (eg, city) []:Kowloon # Miasto Organization Name (eg, company) [Internet Widgits Pty Ltd]:ServBay # Nazwa organizacji Organizational Unit Name (eg, section) []:Development # Dział Common Name (e.g. server FQDN or YOUR name) []:servbay.demo # **Ważne: wpisz swoją domenę lokalną** Email Address []:[email protected] # Adres e-mail kontaktowy Please enter the following 'extra' attributes to be sent on in your certificate request A challenge password []: # Opcjonalnie, można pominąć An optional company name []: # Opcjonalnie, można pominąć
1
2
3
4
5
6
7
8
9
10
11Generowanie samopodpisanego certyfikatu
Na podstawie plików CSR (
servbay.demo.csr
) i klucza (servbay.demo.key
) utwórz samopodpisany certyfikat SSL o nazwieservbay.demo.crt
. Ustaw ważność na 365 dni.shopenssl x509 -req -days 365 -in servbay.demo.csr -signkey servbay.demo.key -out servbay.demo.crt
1openssl x509
: obsługa certyfikatów X.509.-req
: źródłem danych jest plik CSR.-days 365
: ważność certyfikatu wynosi 365 dni.-in servbay.demo.csr
: ścieżka do pliku CSR.-signkey servbay.demo.key
: podpis certyfikatu przy użyciu klucza prywatnego.-out servbay.demo.crt
: nazwa pliku certyfikatu.
Po wykonaniu wszystkich powyższych kroków, w katalogu znajdziesz trzy pliki:
servbay.demo.key
(klucz prywatny),servbay.demo.csr
(żądanie podpisania certyfikatu) iservbay.demo.crt
(samopodpisany certyfikat).
(Ilustracja: proces generowania plików certyfikatu w terminalu za pomocą OpenSSL)
Krok 2: Konfiguracja samopodpisanego certyfikatu SSL w ServBay
Po wygenerowaniu plików należy umieścić je w odpowiednim miejscu dostępnym dla ServBay oraz wskazać ich ścieżki w konfiguracji strony. Zalecane jest przechowywanie certyfikatów w /Applications/ServBay/ssl
, z oddzielnym podfolderem dla każdej domeny.
Przenieś pliki certyfikatu do właściwego katalogu
Podążaj za strukturą zalecaną przez ServBay i przenieś pliki do katalogu
/Applications/ServBay/ssl/private/tls-certs/servbay.demo/
. Jeśli katalog nie istnieje, utwórz go.sh# Tworzenie katalogu, jeśli nie istnieje mkdir -p /Applications/ServBay/ssl/private/tls-certs/servbay.demo/ # Przenoszenie plików mv servbay.demo.key /Applications/ServBay/ssl/private/tls-certs/servbay.demo/ mv servbay.demo.crt /Applications/ServBay/ssl/private/tls-certs/servbay.demo/ # Plik CSR nie jest zazwyczaj wymagany, ale można go zachować jako kopię mv servbay.demo.csr /Applications/ServBay/ssl/private/tls-certs/servbay.demo/
1
2
3
4
5
6
7
8/Applications/ServBay/ssl/
: domyślny katalog do przechowywania plików SSL w ServBay.private/tls-certs/
: zalecana ścieżka na certyfikaty i klucze TLS/SSL.servbay.demo/
: osobny folder dla każdej domeny ułatwia zarządzanie wieloma witrynami.
Uruchom interfejs zarządzania ServBay
Uruchom aplikację ServBay i otwórz jej panel administracyjny.
Dodaj lub edytuj konfigurację strony
Przejdź do zakładki Websites. Jeśli nie masz jeszcze dodanej konfiguracji strony dla
servbay.demo
, wybierz Add Website. Jeśli taka konfiguracja istnieje, wybierz ją do edycji.Konfiguracja SSL/HTTPS
Odszukaj sekcję SSL/HTTPS lub inną odpowiedzialną za obsługę certyfikatów.
Wybierz rodzaj certyfikatu: Custom
Wybierz opcję Custom (niestandardowy certyfikat) jako źródło certyfikatu SSL.
Wskaż ścieżki plików certyfikatu
Wprowadź ścieżki do plików, które zostały przed chwilą przeniesione:
- Certificate Key File (klucz prywatny):
/Applications/ServBay/ssl/private/tls-certs/servbay.demo/servbay.demo.key
- Certificate File (certyfikat):
/Applications/ServBay/ssl/private/tls-certs/servbay.demo/servbay.demo.crt
- Certificate Key File (klucz prywatny):
Ustaw domenę
Potwierdź, że w konfiguracji domeny wpisano
servbay.demo
.Zapisz i zastosuj zmiany
Zapisz wprowadzone zmiany. ServBay może poprosić o zastosowanie konfiguracji, co zwykle wiąże się z restartem serwera WWW (np. Caddy lub Nginx). Potwierdź restart.
(Ilustracja: konfiguracja ścieżek własnego certyfikatu SSL w interfejsie ServBay)
Weryfikacja konfiguracji HTTPS
Po zakończeniu konfiguracji w ServBay możesz sprawdzić działanie przez przeglądarkę, odwiedzając https://servbay.demo/
.
Uwaga: poniewaź używasz samopodpisanego certyfikatu, który nie został wystawiony przez publiczne CA, przeglądarka wyświetli ostrzeżenie o braku zaufania lub ryzyku prywatności. To zachowanie jest normalne.
(Ilustracja: ostrzeżenie w przeglądarce przy użyciu samopodpisanego certyfikatu)
Możesz zignorować ostrzeżenie i kontynuować (zazwyczaj pod przyciskiem „Zaawansowane” lub „Kontynuuj mimo wszystko”), albo - aby uniknąć kolejnych ostrzeżeń - dodać certyfikat do systemowego zaufanego magazynu certyfikatów.
(Ilustracja: podgląd szczegółów samopodpisanego certyfikatu w przeglądarce)
Po przejrzeniu szczegółów certyfikatu możesz potwierdzić, że przeglądarka rzeczywiście załadowała Twój certyfikat servbay.demo
.
Ważne uwagi
- Bezpieczeństwo klucza prywatnego: Twój plik z kluczem (
.key
) jest bardzo wrażliwy – chroń go i nie udostępniaj osobom trzecim. W środowisku lokalnym ustaw odpowiednie uprawnienia, aby tylko użytkownik ServBay miał do niego dostęp. - Ścieżki plików: Upewnij się, że w konfiguracji ServBay wskazałeś poprawne i kompletne ścieżki do wszystkich plików.
- Zgodność domeny: W polu Common Name (CN) certyfikatu musi znajdować się dokładnie ta sama domena, którą podajesz w konfiguracji strony. W przeciwnym razie przeglądarka zgłosi błąd niezgodności domeny.
- Okres ważności certyfikatu: Certyfikat będzie ważny tyle dni, ile podałeś w parametrze
-days
. Po wygaśnięciu musisz wygenerować nowy certyfikat i go skonfigurować.
Tematy powiązane i alternatywy
Samopodpisane certyfikaty idealnie sprawdzają się w podstawowych testach HTTPS, ale jeśli chcesz uzyskać doświadczenie bliższe zaufaniu publicznego CA w środowisku developerskim, rozważ inne opcje oferowane przez ServBay:
- ServBay User CA: ServBay udostępnia narzędzie do tworzenia własnego urzędu certyfikacji (CA). Dodając taki CA do zaufanych na swoim systemie, możesz wystawiać certyfikaty dla lokalnych witryn, które będą traktowane jako zaufane przez system i przeglądarki. To świetne rozwiązanie dla testowania np. OAuth, Webhooków i innych scenariuszy wymagających zaufanych połączeń.
- ServBay Public CA: ServBay umożliwia także korzystanie z publicznego CA, który wystawia certyfikaty dla lokalnych domen i automatycznie je dodaje do systemowych zaufanych certyfikatów.
Takie alternatywy znacząco ułatwiają zarządzanie zaufaniem wobec wielu lokalnych stron oraz eliminują ręczną akceptację ostrzeżeń. Zapoznaj się z dokumentacją ServBay, aby dowiedzieć się, jak używać tych funkcji.
Najczęstsze pytania (FAQ)
- Dlaczego, mimo wygenerowania certyfikatu, przeglądarka nadal pokazuje stronę jako niezabezpieczoną?
- To normalne – przeglądarki nie ufają samopodpisanym certyfikatom. Ostrzeżenie zniknie dopiero po dodaniu Twojego certyfikatu lub urzędu CA (np. ServBay User CA) do zaufanego magazynu systemowego.
- Czy mogę wygenerować certyfikat RSA zamiast ECC?
- Tak, OpenSSL obsługuje również certyfikaty RSA. Możesz użyć np.
openssl genrsa -out servbay.demo.key 2048
i przejść dalej zgodnie z kolejnymi krokami. Zalecamy jednak ECC ze względu na wydajność.
- Tak, OpenSSL obsługuje również certyfikaty RSA. Możesz użyć np.
- Jak dodać samopodpisany certyfikat do zaufanego magazynu certyfikatów na macOS?
- Otwórz aplikację „Dostęp do pęku kluczy” (Keychain Access), wybierz „System” lub „Logowanie”. Przeciągnij plik
.crt
do pęku kluczy. Otwórz właściwości certyfikatu, rozwiń sekcję „Zaufanie” i ustaw „Zawsze ufaj” przy pozycji „Secure Sockets Layer (SSL)”. Zamknij okno, podaj hasło i uruchom ponownie przeglądarkę.
- Otwórz aplikację „Dostęp do pęku kluczy” (Keychain Access), wybierz „System” lub „Logowanie”. Przeciągnij plik
Podsumowanie
Po lekturze tego poradnika umiesz wygenerować samopodpisany certyfikat SSL ECC przy użyciu narzędzi OpenSSL dostępnych w ServBay oraz skonfigurować go na swojej lokalnej stronie. Choć samopodpisane certyfikaty służą głównie do testów i rozwoju, są ważnym krokiem do zrozumienia działania HTTPS i zapewnienia szyfrowanego połączenia w trybie lokalnym. Ułatw sobie zarządzanie zaufaniem poznając funkcje User CA i Public CA w ServBay. Powodzenia w bezpiecznym rozwoju stron www!