ssl

Szyfrowanie i certyfikacja Komentarze (0) »

formaty

cert extension desc
PEM .pem (Privacy Enhanced Mail) Base64 encoding of the DER certificate, with header and footer enclosed between „–—BEGIN CERTIFICATE–—” and „–—END CERTIFICATE–—”
DER .cer, .crt, .der binary DER form, but Base64-encoded certificates are common too (see .pem above)
PKCS#7 .p7b, .p7c SignedData structure without data, just certificate(s) or CRL(s)
PKCS#12 .p12 may contain certificate(s) (public) and private keys (password protected)
PFX .pfx predecessor of PKCS#12 (usually contains data in PKCS#12 format, e.g., with PFX files generated in IIS)

generowanie klucza prywatnego

  • openssl genrsa -des3 -out [output_key_file] 1024

generowanie samopodpisującego się certyfikatu bez klucza prywatnego

  • openssl req -new -newkey rsa:1024 -days 730 -nodes -x509 -keyout [output_key_file] -out [output_cert_file]

generowanie samopodpisującego się certyfiaktu z wykorzystaniem klucza prywatnego

  • openssl req -key [key_file] -new -days 730 -nodes -x509 -out [output_cert_file]

generowanie requesta

  • openssl req -new -key [key_file] -out [output_request_file] #z kluczem
  • openssl req -new -nodes -keyout [output_key_file] -out [output_cert_file] #bez klucza

wyświetlenie requesta

  • openssl req -in [request_file] -noout -text

weryfikacja requesta

  • openssl req -verify -in [request_file] -noout -text #verifikacja requesta
  • openssl req -verify -in [request_file] -key [key_file] -noout -text #weryfkikacja podpisu

własne centrum CA (wykorzystanie skryptów)

generowanie samopodpisującego CA center

  • etc/pki/tls/misc/CA.sh -newca – openssl req -new -keyout ..../CA/private/cakey.pem -out ../../CA/careq.pem
  • openssl ca -out ../../CA/cacert.pem $CADAYS -batch -keyfile ../../CA/private/cakey.pem -selfsign -infiles ../../CA/careq.pem

generowanie requesta do podpisu

  • /etc/pki/tls/misc/CA.sh -newreq
  • openssl req -new -keyout key.pem -out newreq.pem -days [days#] -config [config_file_path]
  • openssl req -new -key [key_file] -out [cert_file]

podpisanie requesta

  • /etc/pki/tls/misc/CA -sign
  • openssl ca -config /usr/lib/ssl/openssl.cnf -policy policy_anything -out [cert_file] -infiles [request_file]

generowanie samopodpisującej pary (key+cert)

  • /etc/pki/tls/misc/CA -newcert
  • openssl req -new -x509 -keyout [key_file] -out [cert_file] $DAYS

powiązanie klucza z podpisanym requestem

  • usunąć wszystkie linie z podpisanego requesta powyżej lini:
    • –—BEGIN CERTIFICATE—–
  • cat [key_file] [signed_request] > [output_file]

usunięcie hasła

  • openssl rsa -in [key_file_withpass] -out [key_file_nopass]

wyświetlenie certyfikatu x509

  • openssl x509 -in [cert_file] -noout -text

wyświetlenie certyfikatu pkcs7

  • openssl pkcs7 -in [cert_file] -print_certs

konwersja formatu z DER to PEM

konwersja certyfikatu

  • openssl X509 -in [der_cert_file] -inform DER -out [pem_cert_file].pem -outform PEM

konwersja klucza

  • openssl rsa -in [der_key_file] -inform DER -out [pem_key_file] -outform PEM

konwersja formatu z PEM do PFX

  • openssl pkcs12 -inkey [key_file] -in [cert_file] -export -out [output_file]

gpg

Szyfrowanie i certyfikacja Komentarze (0) »

def

  • Klucz publiczny jest kluczem szyfrującym.
    Jego nazwa wzięła się z tytułu tego iż powinien być dostępny dla wszystkich.
  • Klucz publiczny i prywatny danego użytkownika stanowią unikalną parę.
  • Osoba chcąca wysłać zaszyfrowaną wiadomość/plik do właściciela klucza szyfruje ją jego kluczem publicznym.
  • Wiadomość taką można rozszyfrować tylko odpowiednim kluczem prywatnym (stanowiącym parę z kluczem publicznym).
  • Osoba szyfrująca plik czyimś kluczem publicznym nie może go ponownie przeczytać.
  • Podpis cyfrowy natomiast polega na tym, iż w procesie szyfrowania (podpisu) wykorzystujemy klucz prywatny.
    Plik/wiadomość będzie można odszyfrować tylko kluczem publicznym pasującym do klucza prywatnego.
    Dzięki temu odbiorca będzie pewien, że dostaje plik/wiadomość od pożądanej przez niego osoby.
  • Obie funkcje tj. szyfrowanie i podpisanie cyfrowe, można łączyć do jednego pliku/wiadomośći
    Najpierw wiadomość/plik podpisuje się kluczem prywatnym nadawcy, a potem szyfruje się kluczem publicznym odbiorcy.
    Odbiorca odwraca ten proces.

generacja pary kluczy (publiczny i prywatny):

  • gpg –gen-key

odcisk palca (weryfikacja klucza publicznego):

  • gpg –fingerprint
  • gpg –with-fingerprint [plik]
  • /etc/pki/rpm-gpg #lokalizacja kluczy redhat,fedora

pliki baz

  • pubring.gpg #publiczna baza domyślna, widoczne przy gpg -k
  • secring.gpg #prywatna baza domyślna, widoczne przy gpg -K
  • gpg.conf #plik konfiguracji

lista kluczy w bazie

  • gpg [ -k | –list-keys] [user] #baza ~/.gnupg/pubring
  • gpg [ -K | –list-secret-keys ] [user] #baza ~/.gnupg/secring

lista podpisów dla kluczy publicznych

  • gpg –list-sigs

sprawdzanie podpisu

  • gpg –verify [signed_file] #sprawdzanie podpisu
  • gpg –check-sigs #lista i sprawdzenie podpisów kluczy

edycja klucza

  • gpg –edit-key [user_ID]

podpisywanie klucza publicznego w bazie

  • w przypadku błędu:
    • It is NOT certain that the key belongs to the person named in the user ID.
  • najpierw należy wygenerować swój klucz prywatny a potem podpisać klucz publiczny:
    • gpg –edit-key
    • Command> sign

import klucza do bazy:

  • gpg –import [pubkeyfile_path]

export kluczy

publiczny

  • binarnie:
    • gpg –export [user] > [output_file]
  • ascii
    • gpg -a –export [user] > [output_file]

prywatny

  • gpg -a –export-secret-keys [user]> [output_file]

usuwanie klucza

  • gpg –delete-keys [user] [baza]
  • gpg –delete-secret-keys [user] [baza]

podpisywanie pliku

  • każda osoba posiadająca klucz publiczny nadawcy może go zweryfikować i być pewnym że nie została ona zminiona,
    oczywiście sygnaturę można wysłać w osobnym pliku
  • gpg -u [localuser] -s [file] #opcja -u ustawia defaultowy klucz prywatny, bez tej opcji zostanie użyty pierwszy klucz wybrany z bazy
  • gpg -s [file] #podpis skonwertowany do ASCII
  • gpg –clearsign [file] #podpis i nie kompresowanie tylko dołączenie sygnatury pod dokumentem
  • gpg -b [file] #generacja samej sygnatury musi być plik ponieważ jest generowana na podstawie sumy kontrolnej pliku i klucza prywatnego

podpisywanie klucza publicznego w bazie

  • gpg -u [localuser] –edit-key [pulic_user]

szyfrowanie

asymetryczne

  • gpg –output [output_file].pgp [–encrypt|-e] [–recipient|-r] „[nazwa_klucza_publicznego_z_bazy]” [input_file]
    • recipienta(adresata) można pobrać z komendy: gpg –list-keys
  • gpg -a -r adresat@mail.pl -e [file] -o [output_file] #szyfrowanie w formacie ASCII
  • można dodać wielu adresatów (recipients)

symetryczne

  • gpg -c [file]

deszyfrowanie:

  • gpg -o [output_file] -d [pgp_file]
  • gpg –output [output_file] –decrypt [pgp_file]

Generowanie certyfikatu SSL

Ściąga Admina, Szyfrowanie i certyfikacja Komentarze (1) »

Bardzo często zachodzi potrzeba szybkiego wygenerowania certyfikatu SSL dla usług. Wtedy zaczyna się, a jak to kurcze było? Robiłem to chyba 100 lat temu.
Dlatego warto mieć pod ręką szybka ściągę:

cd /etc/ssl/
openssl req -new -x509 -nodes -days 365 -out certyfikat.pem -keyout certyfikat.pem
dd if=/dev/urandom of=temp_file count=2
openssl dhparam -rand temp_file 512 >> certyfikat.pem
ln -sf certyfikat.pem `openssl x509 -noout -hash < certyfikat.pem`.0

To cała filozofia.

WordPress - Hosting: Twój hosting - Skórka: N.Design Studio - Spolszczenie: Adam Klimowski.
RSS wpisów RSS komentarzy Zaloguj się