Uzyskanie certyfikatu SSL od dowolnego z głównych urzędów certyfikacji (CA) może kosztować 100 USD i więcej. Dodaj do tego wiadomości, które zdają się wskazywać, że nie wszystkim ustanowionym urzędom certyfikacji można ufać w 100%, a możesz zdecydować się obejść niepewność i wyeliminować koszty, będąc własnym urzędem certyfikacji.
Kroki
Część 1 z 4: Tworzenie certyfikatu CA
Krok 1. Wygeneruj klucz prywatny urzędu certyfikacji, wydając następujące polecenie
-
openssl genrsa -des3 -out server. CA.key 2048
-
Wyjaśnione opcje
- openssl - nazwa oprogramowania
- genrsa - tworzy nowy klucz prywatny
- -des3 – zaszyfruj klucz za pomocą szyfru DES
- -out server. CA.key - nazwa twojego nowego klucza
- 2048 - długość w bitach klucza prywatnego (patrz ostrzeżenia)
- Przechowuj ten certyfikat i hasło w bezpiecznym miejscu.
Krok 2. Utwórz żądanie podpisania certyfikatu
-
openssl req -verbose -new -key server. CA.key -out server. CA.csr -sha256
-
Wyjaśnione opcje:
- req - Tworzy żądanie podpisania
- -verbose - pokazuje szczegóły dotyczące żądania w trakcie jego tworzenia (opcjonalnie)
- -new - tworzy nowe żądanie
- -key server. CA.key - klucz prywatny, który właśnie utworzyłeś powyżej.
- -out server. CA.csr - Nazwa pliku żądania podpisania, które tworzysz
- sha256 - Algorytm szyfrowania używany do podpisywania żądań (jeśli nie wiesz, co to jest, nie zmieniaj tego. Powinieneś to zmienić tylko wtedy, gdy wiesz, co robisz)
Krok 3. Wypełnij informacje jak najwięcej
-
Nazwa kraju (kod 2-literowy) [AU]:
nas
-
Nazwa stanu lub prowincji (pełna nazwa) [Some-State]:
CA
-
Nazwa miejscowości (np. miasto) :
Dolina Krzemowa
-
Nazwa organizacji (np. firma) [Internet Widgits Pty Ltd]:
wikiHow, Inc.
- Nazwa jednostki organizacyjnej (np. sekcja) :
-
Nazwa pospolita (np. FQDN serwera lub TWOJA nazwa) :
-
Adres e-mail :
Krok 4. Podpisz swój certyfikat:
-
openssl ca -extensions v3_ca -out server. CA-signed.crt -keyfile server. CA.key -verbose -selfsign -md sha256 -enddate 330630235959Z -infiles server. CA.csr
-
Wyjaśnione opcje:
- ca - ładuje moduł urzędu certyfikacji
- -extension v3_ca - Ładuje rozszerzenie v3_ca, niezbędne do użytku w nowoczesnych przeglądarkach
- -out server. CA-signed.crt - Nazwa twojego nowego podpisanego klucza
- -keyfile server. CA.key - Klucz prywatny utworzony w kroku 1
- -verbose - pokazuje szczegóły dotyczące żądania w trakcie jego tworzenia (opcjonalnie)
- -selfsign - Informuje openssl, że używasz tego samego klucza do podpisania żądania
- -md sha256 - Algorytm szyfrowania do użycia w wiadomości. (Jeśli nie wiesz, co to jest, nie zmieniaj tego. Zmieniaj to tylko wtedy, gdy wiesz, co robisz)
- -enddate 330630235959Z - Data końcowa certyfikatu. Notacja to YYMMDDHHMMSSZ, gdzie Z jest w GMT, czasem nazywanym czasem „Zulu”.
- -infiles server. CA.csr - plik żądania podpisania utworzony w powyższym kroku.
Krok 5. Sprawdź certyfikat CA
- openssl x509 -noout -text -in server. CA.crt
-
Wyjaśnione opcje:
- x509 - ładuje moduł x509 w celu sprawdzenia podpisanych certyfikatów.
- -noout - Nie wyświetlaj zakodowanego tekstu
- -text - wyświetla informacje na ekranie
- -in server. CA.crt - Załaduj podpisany certyfikat
- Plik server. CA.crt może być dystrybuowany do każdego, kto będzie korzystał z Twojej witryny lub używał certyfikatów, które planujesz podpisać.
Część 2 z 4: Tworzenie certyfikatów SSL dla usługi, takiej jak Apache
Krok 1. Utwórz klucz prywatny
-
openssl genrsa -des3 -out server.apache.key 2048
-
Wyjaśnione opcje:
- openssl - nazwa oprogramowania
- genrsa - tworzy nowy klucz prywatny
- -des3 – zaszyfruj klucz za pomocą szyfru DES
- -out server.apache.key - nazwa twojego nowego klucza
- 2048 - długość w bitach klucza prywatnego (patrz ostrzeżenia)
- Przechowuj ten certyfikat i hasło w bezpiecznym miejscu.
Krok 2. Utwórz żądanie podpisania certyfikatu
-
openssl req -verbose -new -key server.apache.key -out server.apache.csr -sha256
-
Wyjaśnione opcje:
- req - Tworzy żądanie podpisania
- -verbose - pokazuje szczegóły dotyczące żądania w trakcie jego tworzenia (opcjonalnie)
- -new - tworzy nowe żądanie
- -key server.apache.key - klucz prywatny, który właśnie utworzyłeś powyżej.
- -out server.apache.csr - Nazwa pliku żądania podpisania, które tworzysz
- sha256 - Algorytm szyfrowania używany do podpisywania żądań (jeśli nie wiesz, co to jest, nie zmieniaj tego. Powinieneś to zmienić tylko wtedy, gdy wiesz, co robisz)
Krok 3. Użyj certyfikatu CA do podpisania nowego klucza
-
openssl ca -out server.apache.pem -keyfile server. CA.key -infiles server.apache.csr
-
Wyjaśnione opcje:
- ca - ładuje moduł urzędu certyfikacji
- -out server.apache.pem - Nazwa pliku podpisanego certyfikatu
- -keyfile server. CA.key - Nazwa pliku certyfikatu CA, który będzie podpisywał żądanie
- -infiles server.apache.csr - Nazwa pliku żądania podpisania certyfikatu
Krok 4. Wypełnij informacje jak najwięcej:
-
Nazwa kraju (kod 2-literowy) [AU]:
nas
-
Nazwa stanu lub prowincji (pełna nazwa) [Some-State]:
CA
-
Nazwa miejscowości (np. miasto) :
Dolina Krzemowa
-
Nazwa organizacji (np. firma) [Internet Widgits Pty Ltd]:
wikiHow, Inc.
- Nazwa jednostki organizacyjnej (np. sekcja) :
-
Nazwa pospolita (np. FQDN serwera lub TWOJA nazwa) :
-
Adres e-mail :
Krok 5. Zapisz kopię swojego klucza prywatnego w innej lokalizacji
Utwórz klucz prywatny bez hasła, aby uniemożliwić Apache monitowanie o hasło:
-
openssl rsa -in server.apache.key -out server.apache.unsecured.key
-
Wyjaśnione opcje:
- rsa - Uruchamia program szyfrujący RSA
- -in server.apache.key - nazwa klucza, który chcesz przekonwertować.
- -out server.apache.unsecured.key - Nazwa pliku nowego niezabezpieczonego klucza
Krok 6. Użyj wynikowego pliku server.apache.pem wraz z kluczem prywatnym wygenerowanym w kroku 1, aby skonfigurować plik apache2.conf
Część 3 z 4: Tworzenie certyfikatu użytkownika do uwierzytelniania
Krok 1. Wykonaj wszystkie kroki opisane w _Tworzenie certyfikatów SSL dla Apache_
Krok 2. Przekonwertuj podpisany certyfikat na PKCS12
openssl pkcs12 -export -in user_cert.pem -inkey user_private_key.pem -out user_cert.p12
Część 4 z 4: Tworzenie certyfikatów e-mail S/MIME
Krok 1. Utwórz klucz prywatny
openssl genrsa -des3 -out private_email.key 2048
Krok 2. Utwórz żądanie podpisania certyfikatu
openssl req -new -key private_email.key -out private_email.csr
Krok 3. Użyj certyfikatu CA do podpisania nowego klucza
openssl ca -out private_email.pem -keyfile server. CA.key -infiles private_email.csr
Krok 4. Przekonwertuj certyfikat na PKCS12
openssl pkcs12 -export -in private_email.crt -inkey private_email.key -out private_email.p12
Krok 5. Utwórz certyfikat klucza publicznego do dystrybucji
openssl pkcs12 -export -out public_cert.p12 -in private_email.pem -clcerts -nokeys -name "Klucz publiczny WikiHow"
Porady
Zawartość kluczy PEM można zmieniać, wydając następujące polecenie: openssl x509 -noout -text -in certificate.pem
Ostrzeżenia
- Klucze 1024-bitowe są uważane za przestarzałe. Klucze 2048-bitowe są uważane za bezpieczne dla certyfikatów użytkowników do 2030 r., ale są uważane za niewystarczające dla certyfikatów głównych. Rozważ te luki podczas tworzenia certyfikatów.
- Większość nowoczesnych przeglądarek domyślnie wyświetla ostrzeżenie „Niezaufany certyfikat”, gdy ktoś odwiedza Twoją witrynę. Toczyło się wiele dyskusji na temat sformułowania tych ostrzeżeń, ponieważ użytkownicy nietechniczni mogą zostać zaskoczeni. Często najlepiej jest użyć głównego autorytetu, aby użytkownicy nie otrzymywali ostrzeżeń.