Poradniki > Jak stworzyć samodzielnie podpisany certyfikat SSL na Ubuntu 18.04

Jak stworzyć samodzielnie podpisany certyfikat SSL na Ubuntu 18.04

Opublikowany: 16 stycznia 2020

Apache Security SSL Ubuntu

Samopodpisany certyfikat SSL wykorzystywany jest głównie w środowiskach wewnętrznych oraz do testów, kiedy to nie występuje potrzeba skorzystania z zewnętrznego urzędu certyfikacji.

Te samopodpisane certyfikaty są rzadko wykorzystywane do produkcji, w szczególności dlatego, że nie gwarantują odpowiedniego poziomu niezawodności, ponieważ nie są weryfikowane przez urząd certyfikacji.

Z drugiej strony, jeśli jesteś zainteresowany uzyskaniem bezpłatnego certyfikatu SSL wydanego przez zewnętrzny urząd certyfikacji, możesz postępować zgodnie z naszym przewodnikiem na temat zabezpieczania Apache za pomocą Let's Encrypt na Ubuntu 18.04.

Najpierw połącz się z serwerem za pośrednictwem połączenia SSH. Jeśli jeszcze tego nie zrobiłeś, zalecamy skorzystanie z naszego przewodnika, aby bezpiecznie połączyć się z SSH. W przypadku serwera lokalnego przejdź do następnego kroku i otwórz terminal swojego serwera.

Utworzenie klucza prywatnego

W pierwszej kolejności utwórz klucz prywatny, aby uzyskać certyfikat publiczny

Aby utworzyć klucz prywatny, użyj klienta OpenSSL;

$ sudo openssl genrsa -aes128 -out private.key 2048

To polecenie służy do określenia utworzenia klucza prywatnego o długości 2048 bitów, który zostanie zapisany w pliku private.key.

Generating RSA private key, 2048 bit long modulus

....+++

...................+++

e is 65537 (0x010001)

Enter pass phrase for privata.key:

Verifying - Enter pass phrase for private.key:

Zostaniesz poproszony o zabezpieczenie klucza przy pomocy hasła, które musi zawierać przynajmniej 4 znaki.

Tworzenie Żądania Podpisania Certyfikatu (CSR)

Po wygenerowaniu klucza prywatnego utwórz żądanie podpisania certyfikatu (CSR), które określi szczegóły dotyczące certyfikatu.

$ sudo openssl req -new -days 365 -key private.key -out request.csr

OpenSSL poprosi cię o podanie informacji o certyfikacie, które należy wypełnić w następujący sposób:

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [AU]: IT

State or Province Name (full name) [Some-State]: Lazio

Locality Name (eg, city) []: Rome

Organization Name (eg, company) [Internet Widgits Pty Ltd]: My Society

Organizational Unit Name (eg, section) []: Security

Common Name (e.g. server FQDN or YOUR name) []: example.it

Email Address []: mymail@email.com
                Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []: An optional company name []:

W kolejnym kroku zostaniesz zapytany o hasło.

Plik request.csr ze wszystkimi wprowadzonymi przydatnymi informacjami zostanie utworzony w celu wygenerowania certyfikatu.

Generowanie certyfikatu SSL

Kontynuuj generowanie certyfikatu poprzez podanie komendy:

$ sudo openssl x509 -in request.csr -out certificate.crt -req -signkey private.key -days 365

Gdzie:

  • dla parametru -in wskaż plik CSR

  • dla parametru -out podaj nazwę pliku który będzie zawierać certyfikat

  • dla parametru -signkey podaj swój klucz prywatny

  • dla parametru -days określ liczbę dni ważności certyfikatu, który ma zostać utworzony

Jeśli procedura tworzenia została przeprowadzona poprawnie, następujący komunikat zostanie wyświetlony:

Signature ok

Następnie wyświetlone zostaną szczegóły certyfikatu zgodnie z parametrami ustalonymi wcześniej.

Po ich wyświetleniu ponownie zostaniesz poproszony o hasło certyfikatu.

Wreszcie plik certificate.crt jest gotowy do użycia na wiele sposobów, na przykład do ochrony połączenia z serwerem WWW.