Konfiguracja Apache

Zakładam, że SSL jako taki jest już w Apache2 skonfigurowany.

Żeby działała weryfikacja po certyfikatach użytkownika trzeba tylko dorzucić w pliku /etc/apache2/sites-enabled/nazwa_strony następujące linijki:

SSLVerifyClient require
SSLVerifyDepth  1

Generowanie CA

Na początek tworzymy prywatny klucz RSA dla naszego CA:

openssl genrsa -des3 -out ca.key 2048

Potem generujemy request o klucz CSR (Certificate Signing Request):

openssl req -new -key ca.key -out ca.csr

Następnie podpisujemy request prywatnym kluczem CA dzięki czemu staje się on certyfikatem CA:

openssl x509 -days 3650 -signkey ca.key -in ca.csr -req -out ca.crt

Generowanie certyfikatu serwera

Najpierw trzeba wygenerować prywatny klucz dla serwera:

openssl genrsa -out server.key 1024

Potem mając już klucz można przystąpić do generowania CSR, na podstawie klucza serwera:

openssl req -new -key server.key -out server.csr

Teraz trzeba jeszcze podpisać utworzony wcześniej klucz przy pomocy certyfikatu CA:

openssl x509 -days 3650 -CA ca.crt -CAkey ca.key -in server.csr -req -out server.crt

Generowanie certyfikatu klienta

Najpierw trzeba wygenerować prywatny klucz dla klienta(musi być 1024 bo inaczej mi firefox nie chciał go zaimportować, jeśli ktoś wie czemu tak się dzieje to dajcie znać):

openssl genrsa -out regisu.key 1024

Potem mając już klucz można przystąpić do generowania CSR, na podstawie klucza klienta:

openssl req -new -key regisu.key -out regisu.csr

Teraz trzeba jeszcze podpisać utworzony wcześniej klucz na serwerze:

openssl x509 -days 3650 -CA ca.crt -CAkey ca.key -in regisu.csr -req -out regisu.crt

I na koniec z niego wygenerować klucz w postaci pk12(bo taki klucz się importuje do firefoxa):

openssl pkcs12 -export -in regisu.crt -inkey regisu.key -name "regisu" -out regisu.p12

Import do firefox’a

Teraz jeszcze potrzebujemy zaimportować odpowiednie rzeczy do firefoxa. Interesują nas pliki ca.crt oraz regisu.p12(czy jak tam go nazwaliście).

I to by było na tyle. Jeśli ktoś zna lepszy lub tez prostszy sposób to chętnie go poznam.