Jakiś czas temu prezentowałem na swojej stronie dedykowane narzędzie do sprawdzenia swojego adresu IP. Nie ma w tym nic odkrywczego, mniej przydawało mi się ono w pracy – klient mógł w prosty sposób sprawdzić swój adres IP nie będąc rozpraszany tysiącem reklam czy innych treści odwracających uwagę od sedna sprawy. Dziś chciałem pokazać inny projekt, który również powstał by ułatwić mi moją pracę a jest nim generator sampodpisanego certyfikatu SSL.
Czym jest certyfikat Self signed?
Samopodpisany certyfikat SSL jest w zasadzie tym samym co zwykły certyfikat SSL, który możemy spotkać np. na stronach internetowych. Jedyną różnicą jest fakt, że nie został od wydany przez zaufany podmiot a przez nas samych. W przypadku strony internetowej taki certyfikat będzie powodował wyświetlanie w przeglądarce internetowej użytkownika ostrzeżenia iż jest on niezaufany. Niemniej, nawet taki certyfikat wystarczy, aby móc nawiązać z serwerem szyfrowane połączenie.
A na co to komu potrzebne?
Tak jak wyżej wspomniałem taki certyfikat SSL jest po prostu gorszym (ale darmowym) odpowiednikiem pełnoprawnego certyfikatu SSL jaki możemy zakupić u wielu dostawców. Nasuwa się więc pytanie po co w ogóle zaprzątać sobie nim głowę? Jak się jednak okazuje są sytuacje, w których jest on niezwykle przydany.
Aby móc nawiązać z serwerem połączenie szyfrowane (dla uproszczenia załóżmy, że chodzi o stronę www ale to nie jedyne jego zastosowanie) potrzebny jest certyfikat SSL. Nie można zatem np. roboczo przetestować działania połączenia szyfrowanego bez posiadania jakiegokolwiek certyfikatu. Tu właśnie przydaje się samopodpisany certyfikat. Komercyjne certyfikaty SSL wystawiane są przez zaufane podmioty, które weryfikują czy osoba ubiegająca się o certyfikat dla danej domeny ma prawo z niej korzystać. Taki certyfikat jest wtedy zaufany i prawidłowo traktowany przez przeglądarki. Co jednak w przypadku gdy nie chcemy płacić za komercyjny certyfikat a np. ze względu na jeszcze nie przekierowaną domenę na właściwy serwer chcemy sprawdzić działanie strony www, która domyślnie wymusza przekierowanie na https?
Przykładowe zastosowania
Przenosiny strony na nowy serwer to właśnie najczęstszy przypadek użycia przeze mnie samodpospianego certyfikatu. Strona, którą przenoszę na dotychczasowym serwerze korzysta z darmowego certyfikatu Let’s Encrypt. Nie mam dostępu do jego plików a potrzebuję przetestować działanie przeniesionej strony przed przekierowaniem jej domeny co wyklucza wygenerowanie Let’s Encrypt na nowym serwerze. Wtedy właśnie korzystam z certyfikatu samopodpisanego. Dodaję go do serwera i sprawdzam czy strona działa prawidłowo. Wtedy przekierowuję domenę i generuję właściwy Certyfikat Let’s Encrypt.
Innym przypadkiem, w którym przydaje się samopodpisany certyfikat SSL jest stosowanie na swojej stronie CloudFlare i szyfrowania SSL w trybie Full. Wówczas właściwy certyfikat SSL wyświetlany w przeglądarce internetowej dostarcza CloudFlare a certyfikat samopodpisany zapewnia szyfrowanie na drodze serwer <-> CloudFlare.
Generowanie samopodpisanego certyfikatu SSL
Aby wygenerować taki certyfikat SSL wystarczy komputer z systemem linux czy Mac OS oraz narzędzie OpenSSL. Wklepujemy kilka komend w konsolę, tworzymy plik CSR (coś jak zamówienie) oraz klucz prywatny a następnie generujemy właściwy certyfikat. Niby nic trudnego, ale zawsze dążymy do tego by pracować szybciej i bardziej efektywnie. Dlatego zawsze wygodniej korzystało mi się z generatora online, w którym wystarczyło podać nazwę domeny i kliknąć Generate. Niestety strona, z której korzystałem upadła i straciłem możliwość szybkiego generowania takich certyfikatów. Dlatego właśnie postanowiłem stworzyć swoje własne rozwiązanie pozwalające na generowanie certyfikatów online.
Strona jest bardzo prosta, jej część wizualna uproszczona do niezbędnego minimum – Bootstrap i podstawowe kontrolki. Można wybrać pomiędzy generatorem uproszczonym (wymagana jedynie nazwa domeny i okres ważności) bądź rozszerzonym umożliwiającym podanie większej ilości danych. Wygenerowany kod można skopiować do schowka przy pomocy jednego kliknięcia (JavaScript). Tak więc funkcjonalność i prostota przede wszystkim.
Podsumowanie
Ja sam oraz moi koledzy z firmy chętnie korzystamy z tego narzędzia w swojej codziennej pracy. Pozwala nam ono szybciej wykonywać swoje obowiązki. Dlatego też pomyślałem, że udostępnię je również publicznie, tak by każdy kto ma taką potrzebę mógł z niego skorzystać. Jak zawsze bezpłatnie i bez zbędnych treści odwracających uwagę od tego co naprawdę jest istotne.
0 komentarzy