Strony:
Masz jakieś pytania?
Skontaktuj się ze mną
Masz jakieś pytania?
Skontaktuj się ze mną
Do realizacji zadania wykorzystano WSL1 na systemie Windows 2019 server.
Dystrybucja uruchomiona pod systemem WSL to Ubuntu 22.04.4 LTS
Kolejno wykonaj następujące działania:
cd /usr/lib/ssl/misc/
./CA.pl -newca
Po uruchomieniu skryptu CA.pl wprowadź:
podaj nazwę pliku CA: <Enter>
podaj pass phrase:
Country name: PL
State or provice Name: Mazowsze
Locality name (eg. city): Warszawa
Organization Name (eg. company): WWSI
Organization Unit Name: (eg. section): Zakład Sieci Teleinformatycznych (wpisane: ZST)
Common Name (e.g. server FQDN lub twoje imie): Robert
Email address: rj@wwsi.edu.pl
A challenge password:
An optional company name:<Enter>
Enter pass phrase for ./demoCA/private/cakey.pem:
root@WSL:~> cd /usr/lib/ssl/misc/ root@WSL:misc> ./CA.pl -newca CA certificate filename (or enter to create) Making CA certificate ... ==== openssl req -new -keyout ./demoCA/private/cakey.pem -out ./demoCA/careq.pem .+.+..+......+....+..+.........+....+...+.................+.+.........+............+......+..+......+..........+ ......+.....+.........+..........+..+.........+....+..+....+...+..+...+...+............+...+....+...+...+....... ........+..+...+....+.....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.....+...+..+....... .........+...+.........+...+.........+........+.+......+...+...+++++++++++++++++++++++++++++++++++++++++++++++++ ++++++++++++++++*..........+...+..+.+...+.........+...+.....+.............+..+...+....+.....+............+...... ....+.....+.+.........+...+..+.+..+............+....+.....+..........+..+...............+....+........+.......+. ....+...+............+......+.......+..+.........+....++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ +++++++ ..+........+....+...+.................+...+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.... ...........+.........+.........+.......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*..+.... ...+..+.+.................+.+.....+....+............+.....+....+..............+...+...............+...+.+...+... +..+.+..+.......+...........+.+......+...+......+...+........+.......+...+.....+..........+...+..+++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++++ Enter PEM pass phrase: Verifying - Enter PEM pass phrase: ----- 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]:PL State or Province Name (full name) [Some-State]:Mazowsze Locality Name (eg, city) []:Mińsk Mazowiecki Organization Name (eg, company) [Internet Widgits Pty Ltd]:ostrowski.net.pl Organizational Unit Name (eg, section) []:self employed Common Name (e.g. server FQDN or YOUR name) []:Kacper Email Address []:kacper@ostrowski.net.pl Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []: An optional company name []: ==> 0 ==== ==== openssl ca -create_serial -out ./demoCA/cacert.pem -days 1095 -batch -keyfile ./demoCA/private/cakey.pem -selfs ign -extensions v3_ca -infiles ./demoCA/careq.pem Using configuration from /usr/lib/ssl/openssl.cnf Enter pass phrase for ./demoCA/private/cakey.pem: Check that the request matches the signature Signature ok Certificate Details: Serial Number: 08:c9:1a:9f:b4:b4:cc:7f:79:5d:52:6e:21:df:72:35:1f:f5:66:11 Validity Not Before: Jun 8 11:42:42 2025 GMT Not After : Jun 7 11:42:42 2028 GMT Subject: countryName = PL stateOrProvinceName = Mazowsze organizationName = ostrowski.net.pl organizationalUnitName = self employed commonName = Kacper emailAddress = kacper@ostrowski.net.pl X509v3 extensions: X509v3 Subject Key Identifier: 7E:7B:CD:64:8C:56:FE:B4:49:6E:D3:B8:FD:8E:64:63:E4:D4:D3:B3 X509v3 Authority Key Identifier: 7E:7B:CD:64:8C:56:FE:B4:49:6E:D3:B8:FD:8E:64:63:E4:D4:D3:B3 X509v3 Basic Constraints: critical CA:TRUE Certificate is to be certified until Jun 7 11:42:42 2028 GMT (1095 days) Write out database with 1 new entries Data Base Updated ==> 0 ==== CA certificate is in ./demoCA/cacert.pem
Napisz składnię polecenia openssl służącego do wygenerowania żądania wydania nowego certyfikatu cyfrowego dla pary kluczy RSA o długości 2048 bitów. Zapamietaj klucz prywatny w pliku a_rsakey.pem a samo żądanie w pliku a_certreq.pem. Podpowiedź: użyj komendy req ).
Sprawdź żądanie wydania certyfikatu poprzez wykonanie poniższego polecenia:
openssl req -in a_certreq.pem -text -noout
Teraz użytkownik maszyny A może przesłać do użytkownika maszyny C (gdzie zlokalizowany jest Urząd Certyfikacyjny) żądanie wydania certyfikatu zawarte w pliku a_certreq.pem. Napisz składnię polecenia (I wykonaj je) służącego do wydania certyfikatu X.509 na podstawie żądania wydania certyfikatu użytkownika A. Certyfikat zapisz w pliku a_cert.pem. openssl ca … Po wprowadzeniu polecenia na ekranie pojawi się komunikat: Enter pass phrase for ./demoCA/private/cakey.pem
root@WSL:misc> openssl req -new -newkey rsa:2048 -keyout a_rsakey.pem -out a_certreq.pem .+.....+...+....+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*................+....+...+...+...+.........+......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*..+........+.......+...+...........+...+.+.....+......+...+...+...+....+..+.........+....+..+...+...+.......+......+.........+.....+................+..............+............+.............+......+..+.........+.+..+...+.......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ ..+......+.+........+......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.+........+.......+...+...+.....+...+..........+.........+.....+.+.........+......+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++*.............+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Enter PEM pass phrase: Verifying - Enter PEM pass phrase: ----- 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]:PL State or Province Name (full name) [Some-State]:Mazowsze Locality Name (eg, city) []:Mińsk Mazowiecki Organization Name (eg, company) [Internet Widgits Pty Ltd]:ostrowski.net.pl Organizational Unit Name (eg, section) []:self employed Common Name (e.g. server FQDN or YOUR name) []:Kacper Email Address []:kacper@ostrowski.net.pl Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:Q@wertyuiop An optional company name []: root@WSL:misc> openssl req -in a_certreq.pem -text -noout Certificate Request: Data: Version: 1 (0x0) Subject: C = PL, ST = Mazowsze, L = Mi\C3\85\C2\84sk Mazowiecki, O = ostrowski.net.pl, OU = self employed, CN = Kacper, emailAddress = kacper@ostrowski.net.pl Subject Public Key Info: Public Key Algorithm: rsaEncryption Public-Key: (2048 bit) Modulus: 00:ea:a3:10:54:c6:04:98:db:f1:33:d4:89:f3:61: 8c:01:9a:3c:e5:3f:88:29:52:cc:17:05:7d:2b:a2: 52:68:a2:7f:d8:f8:ce:81:09:87:4b:75:fd:dd:eb: 66:ba:c3:6f:bc:b9:70:80:64:ee:75:c5:ef:6b:97: 65:79:1d:01:53:df:d5:d0:75:ad:92:94:64:83:c3: 29:fe:2f:bc:be:3d:9e:53:c1:e2:39:78:c2:2f:21: 0c:bc:71:a7:6e:b1:d9:05:11:48:98:33:e7:d8:cb: 6f:d3:30:1e:d7:30:ca:8e:5d:32:ba:be:3e:e2:93: 86:83:5f:31:6c:61:ce:6a:19:79:67:04:5c:f0:90: 8c:41:8d:ea:8f:e5:1b:53:96:c3:49:8d:a9:02:66: a3:3c:44:03:a2:e2:34:c4:50:78:35:46:d7:ef:e8: 23:de:c9:a7:8a:af:ce:47:89:f4:17:c9:b1:63:62: 64:ba:09:a5:78:b1:f3:a9:ad:d4:9f:89:71:8a:fc: eb:53:8b:8e:80:be:1e:f8:bc:f2:6c:45:ab:50:63: 5a:ca:8c:e9:17:15:10:9a:49:0a:8f:40:7d:31:28: 35:9f:e8:ab:3b:aa:9a:bc:cd:b4:88:45:4f:96:07: 57:51:fc:2c:a7:63:69:dc:72:3a:70:b7:1e:58:8c: 46:d1 Exponent: 65537 (0x10001) Attributes: challengePassword :Q@wertyuiop Requested Extensions: Signature Algorithm: sha256WithRSAEncryption Signature Value: b3:fc:3c:bc:eb:a1:95:c8:b6:9e:c5:a3:01:af:a6:d2:3e:b6: c7:26:74:c2:4d:a8:11:39:fd:4f:69:c6:9c:20:cf:a1:2c:af: 47:67:64:87:ed:73:1f:aa:20:69:0b:9e:4f:7f:81:ec:fb:bf: c9:c1:f9:8e:3d:a3:24:25:52:7d:51:58:cb:bd:46:63:ea:d1: 46:13:a5:42:aa:3c:19:4a:d3:54:01:d5:1a:1b:14:fe:64:d9: 45:1b:d4:cf:76:e3:94:3f:fc:a7:1c:50:9a:af:7e:5a:43:83: 2b:ed:f3:b0:9d:ce:e2:52:f9:cf:d1:6a:7b:de:f9:85:32:1f: 64:17:fe:33:68:b2:52:5d:bf:75:7e:20:4d:89:4c:2d:b4:77: 0e:dc:1b:cd:63:c6:0f:f2:26:12:3c:a1:03:c3:03:17:29:c7: a3:49:1a:d2:3e:e0:1b:88:16:af:d1:67:37:62:2b:5e:72:77: 51:5a:32:d1:c6:41:d2:88:53:59:5f:b3:03:df:36:1e:1c:18: a5:bb:00:a9:e1:45:57:28:74:4d:48:cb:db:c3:71:f9:69:1d: a5:42:08:fa:45:2a:ca:c6:aa:b1:38:10:e6:8e:1a:30:26:61: f1:a8:33:f1:f6:fa:56:1f:da:fc:7c:16:15:c7:86:7c:51:65: 9c:8e:2c:4e # nie miałem dwóch maszyn żeby zrobić test natomiast widać że sygnatury są poprawne root@WSL:misc> openssl ca -in a_certreq.pem -out a_cert.pem Using configuration from /usr/lib/ssl/openssl.cnf Enter pass phrase for ./demoCA/private/cakey.pem: Check that the request matches the signature Signature ok ERROR:There is already a certificate for /C=PL/ST=Mazowsze/O=ostrowski.net.pl/OU=self employed/CN=Kacper/emailAddress=kacper@ostrowski.net.pl The matching entry has the following details Type :Valid Expires on :280607114242Z Serial Number :08C91A9FB4B4CC7F795D526E21DF72351FF56611 File name :unknown Subject Name :/C=PL/ST=Mazowsze/O=ostrowski.net.pl/OU=self employed/CN=Kacper/emailAddress=kacper@ostrowski.net.pl root@WSL:misc>
Po wydaniu certyfikatu przez Urząd Certyfikacji (CA), modyfikacji ulegają następujące pliki w katalogu demoCA:
index.txt – plik bazy danych CA, zawierający informacje o wydanych certyfikatach.serial – plik przechowujący numer seryjny kolejnego certyfikatu.newcerts/<numer>.pem – nowo wygenerowany certyfikat użytkownika.
Te pliki są automatycznie aktualizowane przez polecenie openssl ca.
Użytkownik maszyny A może zweryfikować certyfikat za pomocą poniższego polecenia:
openssl verify -CAfile cacert.pem a_cert.pem
gdzie:
cacert.pem – certyfikat Urzędu Certyfikacji (CA),a_cert.pem – certyfikat użytkownika A, który ma zostać zweryfikowany.Aby wykonać weryfikację certyfikatu cyfrowego, potrzebne są następujące dane:
a_cert.pem).cacert.pem), który wystawił podpisany certyfikat.