Witajcie.
Próbował ktoś na PLD uruchomić jakieś oprogramowanie o funkcjonalności CA? (np www.openca.org).
Osobiście próbowałem uruchomić OpenCA z miernymi skutkami (problemy z formularzami w mozilli, a i IE sobie nie radzi). Chętnie wymienie z kimś doświadczenia związane z tego typu oprogramoawniem.
Pozdrawiam.

Mi w zupelnosci do generowania certyfikatow wystarcza openssl. Mozna na nim zrobic proste CA w nastepujacy sposob:


1. W /var/lib/openssl zakldamy nastepujace katalogi: certs, crl, newcerts, private oraz pusty plik index.txt, a takze pliczek serial poprzez echo 01 > serial

2. Jezeli nie mamy w /var/lib/openssl symlinku do /etc/openssl/openssl.cnf - tworzymy go (ln -s /etc/openssl/openssl.cnf /var/lib/openssl/openssl.cnf

3. Edytujemy pliczek openssl.cnf zmieniajac nastepujace sciezki:
dir = /var/lib/opensll
certs = $dir/certs
crl_dir = $dir/crl
database = $dir/index.txt
certificate = $dir/private/cacert.pem
serial = $dir/serial
private_key = $dir/private/cakey.pem

4. Generujemy kluczy prywatny naszego CA:

openssl genrsa -des3 -out /var/lib/openssl/private/cakey.pem 1024

Zaleca sie zachowanie wielkosci klucza 1024. Wieksze klucze moga powodowac problemy z niektorymi przegladarkami WWW i aplikacjami korzystajacymi z certyfikatow. Lepiej tez ten plik zbackupowac i zadbac aby nikt nie mial do niego dostepu. Jest to klucz prywatny naszego CA ktory bedzie uzywany do podpisywania certyfikatow... A chyba nie chcemy aby ktos za nas podpisywal certyfikaty? ;)

5. Tworzymy CSR (Certificate Signing Request) dla naszego CA:

openssl req -new -key /var/lib/openssl/private/cakey.pem -out /var/lib/private/cacsr.pem

6. Generujemy certyfikat dla klucza publicznego naszego CA wazny na 10 lat:

openssl req -in /var/lib/openssl/private/cacsr.pem -out /var/lib/openssl/private/cacert.pem -key /var/lib/openssl/private/cakey.pem -x509 -days 3652

7. Wykonujemy:
chown -R root:root /var/lib/openssl/private
chmod 700 /var/lib/openssl/private
i chmod 600 wszystkich plikow w /var/lib/openssl/private

I mamy juz nasze CA... Teraz mozemy np. wygenerowac certyfikat dla apache'a wazny przez dwa lata:

openssl genrsa -des3 -out jakis_vhost-key.pem 1024

openssl req -new -key jakis_vhost-key.pem -out jakis_vhost-csr.pem

openssl ca -in jakis_vhost-csr.pem -out jakis_vhost-crt.pem -days 730 -policy policy_anything

I gotowe. Wystarczy pliczki jakis_vhost-key.pem i jakis_vhost-crt.pem podpiac w odpowiednim miejscu w konfiguracji apache'a.

Jezeli apache przy starcie zada od nas hasla do certfikatu, mozemy je usunac:

openssl rsa -in jakis_vhost-key.pem -out jakis_vhost-bez-hasla-key.pem

Jezeli potrzebujemy naszego certyfikatu w formacie .pem (tak, wiem, pliki w powyzszych przykladach maja mylne rozszerzenia, ale tak sie juz przyzwyczailem, ze nie chcialo mi sie modyfikowac), np dla imaps czy pop3s to wystarczy:
cat jakis_vhost-key.pem > nasz_certyfikat.pem
cat jakis_vhost-crt.pem >> nasz_certyfikat.pem


Oczywiscie haslo z pliku *-key.pem lepiej usunac, albo bedziemy o nie pytani przy starcie uslugi.

Jezeli potrzebujemy, mozemy tez odwolac waznosc certyfikatu poprzez:

openssl ca -revoke jakis_vhost-crt.pem -keyfile /var/lib/openssl/private/cakey.pem -cert /var/lib/openssl/cacert.pem

Nadmienic jeszcze trzeba, ze korzystanie z polecenia openssl za kazdym razem gdy chcemy wygenerowac certyfikat moze byc dosc uciazliwe, chocby ze wzgledu na potrzebe podawania kilka razy hasla naszego CA. Dlatego tez warto sobie powyzsze czynnosci obskryptowac. Haslo mozemy przekazac do polecenia np przy generowaniu certyfikatu w taki sposob:

openssl genrsa -des3 -out $1-key.pem -passout file:/var/lib/openssl/private/nasze_super_tajne_haslo 1024

gdzie plik /var/lib/openssl/private/nasze_super_tajne_haslo zawiera haslo, bez znaku konca linii.

Podobnie mozna przekazac haslo w kazdym z uzywanych powyzej polecen, wystarczy zerknac w skladnie polecenia openssl.

Mam nadzieje, ze choc troche pomoglem, i ze niczego nie pokrecilem :-)

Pozdrawiam.
M.

_________________________________________
http://pld-linux.org/ = faq, howto, newsy

dostales tutaj odpowiedz na swoje pytanie?
podziel sie z innymi i dopisz do FAQ!
                http://pld-linux.org/FAQ/



Odpowiedź listem elektroniczym