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:
cacert.pem — veřejný certifikátcrl.pem — ?revokační seznam?FIXME: Poté vytvoříme certifikát pro server pikachu. Výsledkem budou soubory:
pikachu.key — soukromý klíč, zůstává jen na serverupikachu.pem — veřejný certifikát, publikujemepikachu.p12 — pro MSWindowsFIXME: A na konec vytvoříme certifikát pro klienta jirkanb. Výsledkem jsou soubory:
Výsledkem jsou soubory:
jirkanb.key — soukromý klíč, zůstává jen na klientovijirkanb.pem — veřejný certifikát, publikujemejirkanb.p12 — pro MSWindows
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]:CZState or Province Name (full name) []:.Locality Name (eg, city) []:BreclavOrganization Name (eg, company) [Moje Firma, s.r.o.]:FIRMA a.s.Organizational Unit Name (eg, section) []:IT DepartementCommon Name (eg, YOUR name) []:trada.firma.czEmail 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]:y1 out of 1 certificate requests certified, commit? [y/n]y⋮ Signed certificate is in newcert.pem mpressca@yoda:~$mv newreq.pem trada.keympressca@yoda:~$mv newcert.pem trada.pemmpressca@yoda:~$openssl pkcs12 -export -in trada.pem -inkey trada.key \ -certfile demoCA/cacert.pem -out trada.p12Enter 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:~$