W dzisiejszym przewodniku omówimy, jak wygenerować certyfikat SSL z podpisem własnym w systemie Linux, a także jak zaimplementować je w Apache. SSL staje się coraz ważniejszy, gdy Internet staje się coraz bardziej popularny. Ponieważ bezpłatne certyfikaty Let’s Encrypt stają się towarem, z którego każdy może korzystać, nie ma powodu, aby ktokolwiek nie korzystał z SSL – nie wspominając o korzyściach w rankingu wyszukiwania oraz o tym, że przeglądarki i wyszukiwarki będą ufać Twojej witrynie.
Możesz jednak również wygenerować własny certyfikat SSL z podpisem własnym do użytku prywatnego na serwerze. Jednym z ważnych powodów, aby to zrobić, jest szyfrowanie. Chociaż Twój certyfikat osobisty nic nie znaczy dla przeglądarek, a odwiedzający nadal będą otrzymywać ostrzeżenie, jeśli odwiedzą Twoją witrynę bezpośrednio, możesz być przynajmniej pewien, że jesteś chroniony przed atakami typu „man-in-the-middle”. Certyfikat z podpisem własnym to dobry pierwszy krok, gdy tylko testujesz rzeczy na serwerze i być może nawet nie masz jeszcze nazwy domeny.
Zacznijmy od naszej procedury krok po kroku na jak utworzyć certyfikat SSL z podpisem własnym w systemie Linux.
Spis treści
Krok 1: Utwórz parę kluczy RSA
Pierwszym krokiem do wygenerowania własnego certyfikatu SSL z podpisem własnym jest użycie pakietu „openssl” w systemie Linux / CentOS w celu utworzenia pary kluczy RSA. Aby to zrobić, upewnij się, że masz zainstalowany pakiet. Jeśli nie, zainstaluj go za pomocą tego polecenia:
sudo yum install openssl
Prawdopodobnie masz już go w swoim systemie – powinien być teraz zainstalowany niezależnie. Po potwierdzeniu zainstalowania pakietu w systemie wygeneruj parę kluczy za pomocą następującego polecenia:
openssl genrsa -des3 -passout pass:x -out keypair.key 2048
To polecenie używa szyfrowania 2048-bitowego i wyświetla plik o nazwie keypair.key
, jak pokazano tutaj:
Jak widać, klucz został wygenerowany i umieszczony w bieżącym katalogu.
Krok 2: Wyodrębnij klucz prywatny do Folder „httpd”
Folder /etc/httpd
to folder, w którym system operacyjny przechowuje wszystkie ważne elementy związane z SSL. Najpierw utwórzmy nowy folder do przechowywania wszystkich naszych plików związany z naszym kluczem prywatnym:
sudo mkdir /etc/httpd/httpscertificate
Nazwaliśmy folder httpscertificate
i będziemy odnosić się do niego pod tą nazwą w wszystkie inne przykłady wiersza poleceń. Folderowi możesz nadać dowolną nazwę.
Aby wyodrębnić klucz prywatny z pliku kluczy, który właśnie utworzyliśmy, wpisz fo llowing:
openssl rsa -passin pass:x -in keypair.key -out /etc/httpd/httpscertificate/012.345.678.90.key
Zastąp pogrubioną sekcję adresem IP swojego serwera. Jeśli możesz uzyskać dostęp do swojej witryny za pomocą nazwy domeny, możesz również z niej skorzystać.
Spowoduje to utworzenie pliku .key
w folderze, który właśnie stworzyliśmy. Po zakończeniu tego procesu możemy usunąć oryginalny plik pary kluczy:
rm keypair.key
Krok 3: Tworzenie pliku „Żądanie podpisania certyfikatu” (CSR)
Za pomocą klucza możemy utworzyć specjalny plik .csr
, który możemy samodzielnie podpisać lub przesłać do „urzędu certyfikacji”. Jest w standardowym formacie i można go łatwo wygenerować za pomocą naszego klucza z poprzedniego kroku. Aby go utworzyć, wpisz następujące polecenie:
openssl req -new -key /etc/httpd/httpscertificate/012.345.678.90.key -out /etc/httpd/httpscertificate/012.345.678.90.csr
Ponownie, zastąp pogrubione elementy adresem IP lub nazwą domeny, którą wybrałeś w kroku 2. Po uruchomieniu tego polecenia narzędzie poprosi o podanie niektórych danych osobowych, takich jak lokalizacja i nazwa organizacji:
CA (skrót od Certificate Authority) może wykorzystać te dane, aby potwierdzić, że naprawdę jesteś tym, za kogo się podajesz. Spróbuj wypełnić pola jak największą ilością informacji.
Po wprowadzeniu tych danych narzędzie zakończy pracę i umieści .csr
w katalogu, który utworzyliśmy właśnie w tym celu.
Krok 4: Tworzenie pliku certyfikatu „.crt”
Za pomocą CSR możemy utworzyć ostateczny plik certyfikatu jako poniżej. Teraz użyjemy naszych plików .csr
i .key
do utworzenia naszego pliku .crt
:
Spowoduje to utworzenie pliku .crt
w lokalizacji ze wszystkimi naszymi innymi plikami. Teraz wiemy, jak wygenerować nasz samopodpisany certyfikat SSL. Oto zrzut ekranu przedstawiający ostatnie pliki w naszym folderze bezpieczeństwa:
Teraz musimy powiedzieć Apache, gdzie znajdują się te pliki.
Krok 5: Konfiguracja Apache do używania plików
Wszystko, co musimy teraz zrobić, to pokazać Apache, gdzie znajdują się nasze wygenerowane certyfikaty z podpisem własnym. Najpierw musimy zainstalować pakiet mod_ssl
za pomocą polecenia:
sudo yum install mod_ssl
Po zakończeniu zostanie umieszczony ssl.conf
w folderze /etc/httpd/conf.d/
. Musimy zmodyfikować ten domyślny plik. Użyj preferowanego edytora tekstu:
sudo vi /etc/httpd/conf.d/ssl.conf
Teraz przewiń w dół, aż znajdziesz linie zaczynające się od:
SSLCertificateFileSSL CertificateKeyFile
Zmień domyślne ścieżki ze ścieżkami odpowiednio do pliku certyfikatu i pliku kluczy, jak pokazano tutaj:
Zapisz zmiany. Teraz po prostu uruchom ponownie Apache za pomocą:
sudo apachectl restart
I gotowe! Po ponownym uruchomieniu Apache zostanie skonfigurowany tak, aby zezwalał na połączenia SSL przy użyciu wygenerowanych samodzielnie podpisanych certyfikatów SSL.
Gdy następnym razem połączysz się ze swoim adresem IP przez HTTPS, zostaniesz ostrzeżony, że tak nie jest zaufany certyfikat:
W porządku. Wiemy o tym, ponieważ sami to podpisaliśmy! Po prostu kontynuuj, a przeniesie Cię do właściwej witryny:
Tutaj możesz zobaczyć, że używa on certyfikatu, który stworzyliśmy. Nie ma to większego sensu dla nikogo innego odwiedzającego Twoją witrynę, ponieważ nie może zweryfikować Twojej tożsamości. Ale wiesz, że jest bezpieczny, a ponadto jest zaszyfrowany. Nikt w środku nie atakuje!
Wiesz już, jak wygenerować własne certyfikaty SSL z podpisem własnym i wdrożyć je na serwerze WWW Apache.
Jeśli jesteś jednym z naszych zarządzanych Klienci hostingu VPS, możemy zrobić to wszystko za Ciebie bez dodatkowych kosztów. Po prostu skontaktuj się z naszymi administratorami systemu, a oni odpowiedzą na Twoje żądanie tak szybko, jak to możliwe.