27.2.6.5. Vytvoření certifikátů

Další vecí kterou si odzkoušíme je autentizace obou stran pomocí certifikátů. Proto si ale nejdříve zmíněné certifikáty musíme vytvořit. Postupujeme podle návodu [xref linkend="openssl.cert"/]. Pokud nemáme certifikační autoritu, nebo si je nechceme pro tento účel vytvářet, můžeme certifikáty podepsat sebou místo certifikační autoritou. T.j. každý certifikát je podepsán sam sebou. Popíšeme si případ s certifikační autoritou.

FIXME: Vytvoříme si certifikační autoritu. Výsledkem jsou soubory:

FIXME: Poté vytvoříme certifikát pro server pikachu. Výsledkem budou soubory:

FIXME: A na konec vytvoříme certifikát pro klienta jirkanb. Výsledkem jsou soubory: Výsledkem jsou soubory:

A ještě jeden certifikát pro dalšího klienta.

mpressca@yoda:~$ CA -newreq
⋮
Enter PEM pass phrase:********heslo k vytvářenému certifikátu
Verifying password - Enter PEM pass phrase:********a ještě jednou
⋮
Country Name (2 letter code) [CZ]:CZ
State or Province Name (full name) []:.
Locality Name (eg, city) []:Breclav
Organization Name (eg, company) [Moje Firma, s.r.o.]:FIRMA a.s.
Organizational Unit Name (eg, section) []:IT Departement
Common Name (eg, YOUR name) []:trada.firma.cz
Email Address []:vladislav.tvaruzek@firma.cz
⋮
A challenge password []:<Enter>
An optional company name []:<Enter>
Request (and private key) is in newreq.pem
mpressca@yoda:~$ CA -sign
⋮
Enter PEM pass phrase:******** heslo ke klíči certifikační autority
Check that the request matches the signature
Signature ok
The Subjects Distinguished Name is as follows
countryName           :PRINTABLE:'CZ'
localityName          :PRINTABLE:'Breclav'
organizationName      :PRINTABLE:'FIRMA a.s.'
organizationalUnitName:PRINTABLE:'IT Departement'
commonName            :PRINTABLE:'trada.firma.cz'
emailAddress          :IA5STRING:'vladislav.tvaruzek@firma.cz'
Certificate is to be certified until Dec 13 14:16:27 2005 GMT (365 days)
Sign the certificate? [y/n]:y


1 out of 1 certificate requests certified, commit? [y/n]y
⋮
Signed certificate is in newcert.pem
mpressca@yoda:~$ mv newreq.pem trada.key
mpressca@yoda:~$ mv newcert.pem trada.pem
mpressca@yoda:~$ openssl pkcs12 -export -in trada.pem -inkey trada.key \
                         -certfile demoCA/cacert.pem -out trada.p12
Enter PEM pass phrase:********  heslo k certifikátu
Enter Export Password:<Enter>
Verifying password - Enter Export Password:<Enter>
mpressca@yoda:~$

Tím máme všechny klíče vytvořeny. Teď je umístníme na server a klienta a opravíme konfiguraci. Na server umístníme soubory: cacert.pem, crl.pem, pikachu.key, ?pikachu.pem?, jirkanb.pem, trada.pem.

pikachu:/etc/racoon# ls -l certs
total 28
-rw-r--r--    1 root     root         1281 Dec 13 13:47 cacert.pem
-rw-r--r--    1 root     root          516 Dec 13 13:47 crl.pem
-rw-r--r--    1 root     root         3702 Dec 13 13:47 jirkanb.pem
-rw-------    1 root     root         1696 Dec 13 13:47 pikachu.key
-rw-------    1 root     root         2941 Dec 13 13:47 pikachu.p12
-rw-r--r--    1 root     root         3702 Dec 13 13:47 pikachu.pem
-rw-r--r--    1 root     root         3711 Dec 13 15:20 trada.pem
pikachu:/etc/racoon#

Na klienta zase soubory: cacert.pem, crl.pem, jirkanb.key, ?jirkanb.pem?, pikachu.pem.

Na klienta trada uložíme soubory: cacert.pem, crl.pem, trada.key, ?trada.pem?, pikachu.pem.

Pro potřeby VPN budeme ještě potřebovat

mpressca@yoda:~$ openssl x509 -in demoCA/cacert.pem -noout -subject
subject= /C=CZ/L=Breclav/O=FIRMA a.s./OU=IT Departement/CN=Radek Hnilica/Email=ca@firma.cz
mpressca@yoda:~$