sobota, 26 marca 2011

OpenSSL, certyfikaty, klucze, wnioski

Instalacja 
Ważne jest aby swoje CA tworzyć na komputerze oddzielnym od internetu albo przynajmniej za bramą (firewall).

Instalacja :
#apt-get install ssh
Sprawdzenie działania
#openssh
========================================================================
Tworzymy własny Urząd Certyfikacji (CA)

Urząd Certyfikacji będzie zajmował się uwierzytelnianiem komputerów w sieci Marionet, nadając im certyfikaty. 
Podstawą urzędu jest konfiguracja pliku openssl.conf oraz wygenerowanie klucza prywatnego i publicznego

Konfiguracja /etc/ssl/openssl.conf
=====================================
[CA_default]
dir = /etc/ssl                                                      #katalog główny, w którym zapisane są pliki
certs = $dir/certs                                               #katalog, w którym zapisywane będą certyfikaty
new_certs_dir=$dir/newcerts                             #katalog z nowymi certyfikatami
clr_dir = $dir/crl                                                #katalog z listą certyfikatów unieważnionych clr
private_key = $dir/private/cakey.pem                #klucz prywatny
database=$dir/index.txt                                     #informacje o wystawionych certyfikatach wraz ze statusem
certyfikate=$dir/private/cacert.pem                    #certyfikat do podpisu wniosków
serial = $dir/serial                                              #plik z numerem kolejnego wystawienia certyfikatu
crl=$dir/clr.pem                                                 #bieżąca lista certyfikatów unieważnionych
=====================================
Następnie tworzymy wymagany katalog i pliki :
# mkdir /etc/ssl/crl
#mkdir /etc/ssl/newcerts
# touch /etc/ssl/index.txt
# echo 00 > /etc/ssl/serial
=====================================
Generujemy klucz prywatny (tajny) i certyfikat główny (publiczny), który będą służyły do podpisywania innych certyfikatów dla innych komputerów naszej wewnętrznej sieci VPN.

Klucz prywatny
#openssl genrsa -des3 -out /etc/ssl/private/cakey.pem 1024

Ustalamy hasło do klucza prywatnego. Klucz został zapisany w pliku /etc/ssl/private/cakey.pem. Hasło trzeba pamiętać bo będzie służyło do tworzenia innych certyfikatów.
Pliki z katalogu /etc/ssl należy zarchiwizować do bezpiecznego miejsca. 

Klucz publiczny (certyfikat)
#openssl req -new -x509 -days 365 -key /etc/ssl/private/cakey.pem -out /etc/ssl/private/cacert.pem


Podajemy hasło do klucza prywatnego, aby podpisać certyfikat CA (główny). W polu Common Name podajemy nazwę firmy słownie lub nazwę domeny. 


Podsumowanie:
Mamy plik cakey.pem (klucz prywatny) i cacert.pem (klucz publiczny CA), dzięki kluczom możemy wystawiać certyfikaty innym komputerom naszej sieci branżowej Marionet.
=======================================================================

Uwierzytelniamy serwer

1. Generujmy klucz prywatny dla serwera :
#openssl genrsa -des3 -out /etc/ssl/private/serverkey.pem 1024

2. Generujemy wniosek o wystawienie certyfikatu dla serwera:
# openssl req -new -key /etc/ssl/private/serverkey.pem -out /etc/ssl/private/serverreq.pem


 Wypełniamy jak wyżej. Hasło do zatwierdzenia wniosku z klucza prywatnego serwera.

3. Wystawiamy certyfikat dla pierwszego podmiotu - serwera. Podpisujemy więc wniosek.
#openssl ca -notext -in /etc/ssl/private/serverreq.pem -out /etc/ssl/private/servercert.pem


Hasło podajemy klucz prywatny CA.

Po tej operacji zmienią się pliki :
/etc/ssh/serial - będzie zawierał liczbę 01
/etc/ssh/index.txt - zawiera informacje o serwerze i jego certyfikacie, jest niezbędny przy odwoływaniu certyfikatu.

Podobne operacje będziemy wykonywać dla poszczególnych komputerów w sieci przy rozbudowie sieci VPN o dodatkowe maszyny.

======================================================================
Unieważnienie certyfikatu

Stosujemy operację unieważnienia z powodu odejścia pracownika z firmy lub kradzieży laptopa. 
#openssl ca -revoke jkowalskicert.pem
Podajemy hasło do klucza prywatnego CA.

Generujemy listę CRL - unieważnionych certyfikatów :
openssl ca -gencrl -out crl.pem

Brak komentarzy:

Prześlij komentarz