Základy práce s OpenSSL - privátní klíč a CSR
Seznameni s OpenSSL
OpenSSL je mocny nastroj pro praci s certifikaty a open source implementace protokolu SSL/TLS. Poskytuje kryptograficke knihovny, jejichz funkce vyuzivaji webove servery a jine programy pracujici s sifrovanim. Nenechte se prekvapit ci odradit tim, ze program nema graficke rozhrani. Pri praci s nim zjistite, ze je to naopak vyhoda.
Instalace OpenSSL a konfigurace
Program OpenSSL je vetsinou jiz zahrnut v instalaci unixovych a linuxovych operacnich systemu. Na nich staci program spustit prikazem openssl, nebo ho napred doinstalovat. Pokud pracujete ve Windows, musite si OpenSSL stahnout v jiz zkompilovane podobe (nebo zkompilovat zdrojovy kod). Instalacni soubory najdete na webu projektu Win32 OpenSSL Installation, ktery pripravuje program OpenSSL pro Windows. Aktualni verze OpenSSL 1.0.1e byla zverejnena 11. 2. 2013.
Chyba can't open config file openssl.cnf
Pravdepodobne se po instalaci a prvnim spusteni setkate s chybou "can't open config file /usr/local/ssl/openssl.cnf". V tom pripade je nutne v systemu Windows rucne nastavit promennou OPENSSL_CONF, ktera bude odkazovat na umisteni konfiguracniho souboru openssl.cfg.
Nastaveni muzete provest bud ve Vlastnostech systemu pridanim promenne s nazvem OPENSSL_CONF a hodnotou C:umisteni-instalacebinopenssl.cfg, nebo timto prikazem zadanym do prikazoveho radku:
set OPENSSL_CONF=c:[cesta do adresare OpenSSL]binopenssl.cfg
Vygenerovani privatniho klice
Privatni klic je vas soukromy klic, ktery nesmi opustit server a za zadnych okolnosti jej nesmi ziskat nikdo jiny (proto nedoporucuji generovani privatniho klice ve webovych nastrojich, ktere ho posilaji e-mailem). Na serveru slouzi k desifrovani dat zasifrovanych certifikatem, ktery funguje jako verejny klic. Ziskanim privatniho klice by se mohl neopravneny drzitel vydavat za vas a desifrovat data zasifrovane vasim certifikatem.
Vygenerovani privatniho klice provedete zadanim tohoto prikazu do programu OpenSSL:
openssl genrsa -des3 -out klic-s-heslem.key 2048
Pouziti parametru -des3 zahesluje privatni klic a naopak s jeho vynechanim nebude privatni klic zaheslovany. Pokud privatni klic bude chranen heslem, bude nutne pri kazde praci s nim (generovani CSR, start Apache) toto heslo zadat. Doporucujeme heslo pouzit, ale s uvazenim na konkretni webovy server a jeho podporu teto funkce.
Parametr -out definuje vystup do souboru a jeho pojmenovani. Doporucujeme privatni klice ukladat jako soubory s koncovkou .KEY, abyste se v kryptografickem materialu lepe vyznali. Pro pouziti klice to vsak neni dulezite, muzete pouzit i jinou priponu.
Cislo 2048 urcuje bitovou hloubku klice. Nizsi bitova hloubka jak 2048 bitu se jiz nepouziva (podpora 1024b klicu jiz skoncila).
Vygenerovani CSR requestu
Zadost o certifikat (CSR request), tedy vas verejny klic, se generuje z vaseho privatniho klice. Do programu OpenSSL zadejte prikaz:
openssl req -new -key klic-s-heslem.key -out nazev.csr
Parametr -key urcuje nazev souboru s privatnim klicem a parametr -out nazev vystupu, tedy soubor s CSR requestem.
Nasledne vas program vyzve k zadani udaju pro CSR request.
Country Name (2 letter code) [US]: Nazev statu velkymi pismeny dle normy ISO, napriklad CZ
State or Province Name (full name) []: Napriklad Czech Republic
Locality Name (eg, city) []: Mesto, kde mate sidlo. Napriklad Praha, Brno
Organization Name (eg, company) []: Nazev organizace ci osoby zadajici o certifikat
Organizational Unit Name (eg, section) []: Nazev organizacni jednotky ci oddeleni. Muzete zadat napriklad Internet, Software, Marketing.
Common Name (eg, YOUR name) []: Nejdulezitejsi udaj - domena, pro kterou bude certifikat vystaven. Rozlisuje se tvar domeny s WWW a bez, stejne jako domeny nizsiho radu. Napriklad www.sslmarket.cz.
Email Address []: E-mailova adresa - neni pozadovano, nevyplnujte.
Nasleduji jeste dva rozsirujici atributy, ktere nevyplnujte (jen potrdte Enterem):
A challenge password []: Heslo, ktere se dle standardu pouziva pro revokaci. Nevyplnujte!
An optional company name []: Jiny nazev spolecnosti.
V souboru s CSR requestem najdete zadost o certifikat zakodovanou ve formatu Base64, ktery slouzi pro ulozeni binarnich dat v textove podobe. Na prvni pohled vam proto prijdou data jako nesmyslny text. Chcete-li si udaje v CSR overit, pouzijte prikaz:
req -noout -text -in nazev.csr
Pro kontrolu udaju v CSR, ale i v certifikatu, muzete pouzit webovy nastroj CSR Decoder And Certificate Decoder.
Vygenerovany CSR request muzete vlozit do administrace SSLmarket do objednavky vaseho certifikatu, nebo poslat nasi podpore na admin@zoner.cz.
Odstraneni hesla z privatniho klice
Pokud by vam zaheslovani privatniho klice cinilo problem pri pouzivani certifikatu, nebo vas webhoster pozaduje privatni klic bez hesla, je mozne ho v OpenSSL odstranit. Prikaz na odstraneni hesla z privatniho klice je nasledujici:
rsa -in klic-s-heslem.key -out klic-bez-hesla.key
Parametrem -in odkazujete na existujici soubor zaheslovaneho privatniho klice, v parametru -out potom specifikujete nazev souboru s privatnim klicem bez hesla.
Specialista pro bezpečnostní SSL certifikáty
DigiCert TLS/SSL Professional
e-mail: jindrich.zechmeister(at)zoner.cz