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.keykorzystający z krzywejprime256v1:shopenssl ecparam -genkey -name prime256v1 -out servbay.demo.key1openssl: 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.keystwó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.csr1Po 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 []:admin@servbay.demo # 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.crt1openssl 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 2048i 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
.crtdo 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!
