|
ot Rumen(9-08-2004)
reiting (34)
[ dobre ]
[ zle ]
Variant za otpechatvane
CHAST 2
Sledvashta stupka: Suzdavane na sobstveni sertifikati
Vupreki, che povecheto CAs shte Vi generirat dvoika klyuchove
zaedno sus sertifikat s publichen klyuch, Vie mozhete sami da si
generirate dvoika klyuchove i (samopodpisani) sertifikati.
Neka preminem stupka po stupka neobhodimite etapi za da
mozhete sled tova da poiskate doverena (sertifikatsionna
organizatsiia)CA da podpishe Vashiiat sertifikat.
Klyuchovete i sertifikatite, generirani v tezi primeri mogat
da budat izpolzvani ot vsiako prilozhenie, poddurzhashto
standartite: RSA [3], DSA [4] i X.509 [5]. Vupreki fakta, che
shte ogranichim nashite primerni stsenarii do Apache [6], Tomcat
[7] servlet [8] konteiner, Vie mozhete da polzvate tezi
tehniki s drugi prilozheniia, vklyuchvashti Ueb-uslugi polzvaiki
suotvetno tehnite konfiguratsionni metodi.
Dva raboteshti instrumenta za rabota s klyuchove/sertifikati
sa: OpenSSL [9] - biblioteka ot kriptografski funktsii s
vklyucheni programi ot komanden red za tiahnoto izpulnenie; i
Keytool [10] - programa za rabota s klyuchove i sertifikati,
vklyuchena kato chast ot JDK [11] (platforma za rabota i
razrabotka na ezika Java) na Sun.
OpenSSL
Tui kato OpenSSL paketa vklyuchva i drugi funktsii, kato
SSL/TLS funktsii, nie tuk shte razgledame samo funktsiite mu za
generirane i upravlenie na klyuchove/sertifikati. Slednata
komanda generira RSA chasten klyuch ot koito mozhe da se poluchi
publichen klyuch:
openssl genrsa -out private_key.pem 2048
Ako zhelaete da zashtitite svoia chasten klyuch s parola (edna
dobra ideia) - izpolzvaite edin ot -des, des3 ili -idea
klyuchovete, v zavisimost ot tova koi algoritum za kriptirane
na parolata zhelaete da izpolzvate. Dulzhinata na klyucha (v
bitove) tuk e 2048, koeto e obshtoprietiia minimum za
RSA-klyuchove.
Ako puk iskate da generirate DSA dvoika klyuchove eto dvete
stupki. Purvo suzdaite DSA parametur fail:
openssl dsaparam -out dsa_param.pem 2048
Sled (priklyuchvane na) gornata stupka,mozhe da generirate i
realniia DSA-klyuch:
openssl gendsa -out private_key.pem dsa_param.pem
Tui kakto i v primera s RSA po-gore, ako iskate da zashtitite
svoia chasten klyuch s parola izpolzvaite edna ot slednite
optsii: -des, -des3 ili -idea.
I dvata primera po-gore izpolzvat PEM kato izhoden format,
koito paketira Base64 ASN1 [12] DER danni s ASCII zaglaviia
(headers). Za da preobrazuvate PEM-failovete kum PKCS#12
[13] format (za polzvane s Tomcat ili mnogo drugi
Ueb-brauzuri) izpulnete slednata komanda:
openssl pkcs12 -export -in pem_formatted_file -out
pkcs12-formatted-file
Vse oshte ne sme priklyuchili. Neobhodim ni e sertifikat s
publichen klyuch, koito da raboti sus suotvetniiat chasten klyuch.
SHTe zapochnem sus suzdavane na podpisan ot nas (samopodpisan)
X.509 sertifikat:
openssl req -new -x509 -key private_key.pem -out
certificate.der
Tazi komanda interaktivno pita potrebitelia za nuzhnata
informatsiia, otnosno subekta za koito se generira sertifikata
(Ueb-survur ili potrebitel), tsialata informatsiia se izpolzva
za da se identifitsira subekta na sertifikata s publichen
klyuch; toest da se prikrepi subekt kum publichniiat klyuch. Ako
generirate tozi sertifikat samo s testova tsel tova e
dostatuchno. Obache za povecheto realni prilozheniia e neobhodimo
sertifikata da bude podpisan i ot doveren CA. Podrobnostite
po tozi protses sa razlichni za razlichnite CA, no povecheto shte
iziskat i priemat - Iskane za Podpis na Sertifikat (CSR).
Slednata komandaZa shte go generira:
openssl req -new -key private_key.pem -out
certificate_request.csr
Zabelezhete, che tazi komanda se razlichava ot poslednata samo
po lipsata na -x509 optsiiata (koiato samopodpisva
sertifikata). Rezultata ot tazi komanda - CSR veche mozhe da
bude izpraten na CA, polzvaiki iziskvaniia za tova nachin.
Sled kato CA e proverila identichnostta na subekta (otnovo
tezi stupki sa razlichni za razlichnite CA) CA shte izdade
podpisan sertifikat.
Kombinatsiiata ot chasten klyuch i sertifikat s publichen klyuch
veche mozhe da se izpolzva v PKI-suvmestimi prilozheniia, t.e.
da se aktivirat SSL-vruzki s Vashiiat Tomcat servlet
konteiner, kakto shte vidim sled malko.
Keytool
Generirane na dvoiki klyuchove i upravlenie na sertifikati s
izpolzvane na keytool e malko po-prosto ot izpolzvaneto na
OpenSSL. Naprimer, vmesto da triabva da suzdavate otdelno
PKCS#12 konteiner za klyuchove, keytool suzdava Java Konteiner
za Klyuchove (JKS-Java Key Store), kato chast ot protsesa na
generirane na dvoika klyuchove/sertifikat. Ot druga strana
keytool ne predlaga priblizitelno ednakva funktsionalnost v
sravnenie s OpenSSL. Naprimer, keytool ne mozhe da vmukva ili
izvezhda chastni klyuchove v/ot konteiner za klyuchove.
Zapochvame s generirane na RSA dvoika klyuchove (zaedno s
suotvetniia samopodpisan sertifikat) izpolzvaiki keytool:
keytool -genkey -keyalg RSA -keysize 2048 -keystore
my_keystore.jks -alias me
Tazi komanda shte Vi poiska neobhodimite za sertifikata
danni, kakto v primera s OpenSSL po-gore. Optsiiata -alias Vi
pozvoliava da dadete 'ime' (psevdonim) na dvoikata
klyuch/sertifikat v konteinera za klyuchove. Ako iskate da
generirate DSA dvoika klyuchove, izpulnete slednata
komanda:
keytool -genkey -keyalg DSA -keysize 2048 -keystore
my_keystore.jks -alias me
Oshte vednuzh, ako iskate samo da generirate testov
sertifikat, mozhe da sprete do tuk. Ako obache iskate doveren
CA da podpishe Vashiiat sertifikat e neobhodimo da generirate
CSR sus slednata komanda:
keytool -certreq -alias me -keystore my_keystore.jks -file
certificate_request.csr
Sega veche mozhe da izpratite generiraniiat CSR-fail na svoia
CA, izpolzvaiki iziskvanite ot tiah nachini. Sled priklyuchvane
na protsesa na proverka CA shte izdade podpisan sertifikat.
Primer s Tomcat
Sega sled kato sme generirali nashata dvoika klyuchove
(publichen/chasten) i imame izdaden ot CA sertifikat s
publichen klyuch, koito vurvi s tiah, veche sme gotovi da gi
izpolzvame. Nashata purva stupka e da se ubedim, che
konteinera za klyuchove e s pravilen format za polzvane ot
Tomcat. Tomcat versiia 5 poddurzha samo konteineri s klyuchove
vuv formati - JKS ili PKCS#12. Ako ste izpolzvali OpenSSL za
suzdavane na Vashata dvoika klyuchove i suotvetno iskaneto za
podpis na sertifikat to e neobhodimo da postavite svoia
chasten klyuch i suotvetniiat mu sertifikat s publichen klyuch
zaedno v PKCS#12-suvmestim konteiner za klyuchove:
openssl pkcs12 -export -in certificate_file -inkey
private_key.pem -chain -name tomcat -outfile
my_keystore.p12
Tazi komanda vzema faila, sudurzhasht sertifikata s publichen
klyuch, izdaden ot CA (certificate_file) i go sdvoiava sus
suotvetniiat chasten klyuch (private_key.pem) v
PKCS#12-suvmestim konteiner za klyuchove, zadavaiki mu
psevdonim "tomcat", koito se polzvane ot Tomcate
po-podrazbirane.
Ako ste generirali svoiata dvoika klyuch/sertifikat,
izpolzvaiki keytool ne e neobhodimo da promeniate nishto -
keytool suzdava JKS-suvmestimi konteineri za klyuchove.
Ubedete se obache, che sled kato vednuzh ste poluchili podpisan
ot CA sertifikat (v otgovor na Vashata CSR-zaiavka po-gore)
triabva da postavite tozi sertifikat v svoia konteiner za
klyuchove eto taka:
keytool -import -alias tomcat -trustcacerts -file
certificate_file -keystore my_keystore.jks
Tazi komanda sdvoiava podpisaniiat ot CA sertifikat (vuv
faila certificate_file) sus suotvetniiat chasten klyuch v
konteinera za klyuchove, suzdaden predi tova i zadavaiki mu
psevdonima po podrazbirane "tomcat".
Pochti priklyuchihme. Nshata posledna stupka e da konfigurirame
Tomcat da poddurzha SSL-vruzka kato redaktirame
$TOMCAT_HOME/conf/server.xml faila, dobaviaiki sledniia
Connector-element:
Tova dava na Tomcat vuzmozhnost da sledi za SSL-vruzki na
port-443. Zabelezhete sushto, che ako Vashiiat konteiner za
klyuchove e PKCS#12-suvmestim, to triabva da promenite
parametura 'keystoreType'. Sushto taka, ako iskate da
zadulzhite klientite sushto da se identifitsirat s validni
sertifikati (vzaimna identifikatsiia), to promenete parametura
'clientAuth' na 'true'.
Sushto taka e vazhno da proverite dali
'redirectPort'parametura za ne-SSL vruzki e nastroen da
suvpada s tozi na SSL. Za poveche informatsiia za tazi i
drugi survurni konfiguratsii na Tomcat vizhte tuk [14].
Sled kato veche ste redaktirali konfiguratsionniia fail na
survura mozhe da restartirate Tomcat i da proverite Vashata
nova SSL-vruzka chrez zarezhdane na adres:
https://localhost:443 vuv Vashiiat brauzur.
Tova podrazbira fakta, che Vashiiat brauzur raboti na sushtata
mashina na koiato e instaliran Tomcat. Vie shte vidite
tematichnata stranitsa na Tomcat (ili tova, koeto ste
konfigurirali za Vashe bazovo prilozhenie), a sushto Vashiiat
brauzur shte indikira nalichieto na raboteshta SSL-vruzka.
VRUZKI:
[1]"another article" - http://www.counterpane.com/pki-risks.html
[2]"two" - http://www.apache-ssl.org/7.5things.txt
[3]"RSA" - http://www.rsasecurity.com/rsalabs/node.asp?id=2125
[4]"DSA" - http://www.itl.nist.gov/fipspubs/fip186.htm
[5]"X.509" - http://www.ietf.org/html.charters/pkix-charter.html
[6]"Apache" - http://www.apache.org/
[7]"Tomcat" - http://jakarta.apache.org/tomcat
[8]"servlet" - http://java.sun.com/products/servlets
[9]"OpenSSL" - http://www.openssl.org/
[10]"Keytool" - http://java.sun.com/j2se/1.4.2/docs/tooldocs/solaris/keytool.html
[11]"Java Development Kit" - http://java.sun.com/
[12]"ASN.1" - http://asn1.elibel.tm.fr/en/standards
[13]"PKCS#12" - http://www.rsasecurity.com/rsalabs/node.asp?id=2138
[14]"this" - http://jakarta.apache.org/tomcat/tomcat-5.0-doc/config/index.html
Priiatno chetene.
<< lm_sensors + Superkaramba | Sigurni Ueb-uslugi: osnovi na PKI - CHast 1 (prevod) >>
|
|