[zorp-hu] Egymasba agyazott plugok
Balazs Scheidler
bazsi@balabit.hu
Thu, 23 Aug 2001 11:45:07 +0200
On Thu, Aug 23, 2001 at 11:02:15AM +0200, Kosa Attila wrote:
> On Wed, Aug 22, 2001 at 05:43:58PM +0200, Balazs Scheidler wrote:
> > > hogy minden mukodjon? Ahogy en gondolom: a newcert.pem az
> > > igazolas, a newreq.pem a privat kulcsom, a cacert.pem a CA
> > > igazolasa. A newcert.pem az amit a courier spop3d-ssl-je
> > > hasznal a /usr/share/pop3d.pem fajl neven. A cacert.pem fajlt
> > > kell eljuttatni a winekhez, es azt kell beimportalniuk az
> >
> > tisztazzuk a dolgokat:
> >
> > cacert.pem - CA publikus kulcsa, ezt kell eljuttatni az outlooknak, hogy
> > benne kell megbizni
>
> Ez oke, ennek nem valtoztattad meg a nevet :)
>
> > newreq.pem - ez egy Certificate Signing Request (CSR), melyet kulcsgeneralas utan
>
> Ezt nevezted te pop3s.key -nek. Meg pop3s.csr -nek is.
nem, ezt pop3s.csr-nek neveztem. A csr-ben nincs privat kulcs, a .key-ben
van.
>
> > kuldd el az igenylo a CA-nak alairasra.
> > newcert.pem - A CSR alairasa utan letrejovo certificate
>
> Ezt nevezted te pop3s.crt -nek.
igy van.
> > Kell, hogy legyen meg valahol egy a newreq.pem-hez tartozo privat kulcs. En
>
> A demoCA/private/ konyvtarban letrejott egy cakey.pem nevu
> fajl. De mihez kell ez, es mit kell vele csinalni?
az nem az. a cakey.pem a CA-d titkos kulcsa, amivel hitelesit.
>
> > a kovetkezo lepeseket javaslom (elso korben Zorp nelkul):
> >
> > CA.pl-el letrehozunk egy CA-t:
> >
> > /usr/lib/ssl/misc/CA.pl -newca
> > (A CA-ra vonatkozo adatokat beirod stb., letrejon a demoCA alkonyvtar)
>
> Megcsinaltam. Beirtam egy jelszot, aztan a kerdesekre a kovetkezo
> valaszokat adtam:
> Country Name (2 letter code) [AU]:HU
> State or Province Name (full name) [Some-State]:Hungary
> Locality Name (eg, city) []:Miskolc
> Organization Name (eg, company) [Internet Widgits Pty Ltd]:Cegnev
> Organizational Unit Name (eg, section) []:Sysadmin
> Common Name (eg, YOUR name) []:a_gep_belso_halorol_lathato_neve
> Email Address []:root@cegnev.hu
ez itt meg nem a szolgaltatas certificate-je, hanem a CA-de, tehat a Common
Name az valami olyasmi legyen, hogy CEG CA.
>
> > openssl req -newkey rsa:1024 -keyout pop3s.key -out pop3s.csr
> > (letrejon egy privat kulcs, bekeri a pop3s service adatait, es az ahhoz tartozo csrt)
>
> Ugyanazokat adtam meg, mint a fentinel.
ez viszont a szolgaltatasra vonatkozo adatokat keri.
>
> > openssl ca -in pop3s.csr -out pop3s.crt
> > (letrejon a pop3s.crt)
>
> Erre viszont azt mondja, hogy
> Using configuration from /usr/lib/ssl/openssl.cnf
> Enter PEM pass phrase:
> Check that the request matches the signature
> Signature ok
> The Subjects Distinguished Name is as follows
> countryName :PRINTABLE:'HU'
> stateOrProvinceName :PRINTABLE:'Hungary'
> localityName :PRINTABLE:'Miskolc'
> organizationName :PRINTABLE:'Cegnev'
> organizationalUnitName:PRINTABLE:'Sysadmin'
> commonName :PRINTABLE:'a_gep_belso_halorol_lathato_neve'
> emailAddress :IA5STRING:'root@cegnev.hu'
> HU:invalid type in 'policy' configuration
>
> Es a letrejovo pop3s.crt fajl 0 byte meretu.
> Ebbol en azt a kovetkeztetest vontam le, hogy nem sikerult
> valami miatt alairnia a kulcsot. Mi lehetett a gond?
a problema az, hogy az openssl altal hasznalt alairasi policynak nem felel
meg a certificate keres. probald meg igy alairni:
openssl ca -policy policy_anything -in pop3s.csr
> Az emlitett fajlban (/usr/lib/ssl/openssl.cnf -> link a
> /etc/ssl/openssl.cnf fajlra) ugyanazok szerepelnek, mint
> amiket a kerdesekre valaszoltam:
>
> # For the CA policy
> [ policy_match ]
> countryName = HU
> stateOrProvinceName = Hungary
> organizationName = Cegnev
> organizationalUnitName = Sysadmin
> commonName = a_gep_belso_halorol_lathato_neve
> emailAddress = root@cegnev.hu
Erre panaszkodik alairaskor az openssl. a policy-k megkoteseket tudnak tenni
a certificate keresek formai kovetelmenyeire. Itt olyasmi allhat, hogy
countryName = match
stateOrProvinceName = match
...
Itt a match azt jelenti, hogy a CSR adott mezojenek meg kell felelnie a CA
adott mezojevel. Ezt szerintem ird vissza, vagy adjal meg olyan adatokat,
mely neked megfelel. Az eredeti igy nez ki:
[ policy_match ]
countryName = match
stateOrProvinceName = match
organizationName = match
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
A policy_anything alkalmazasa pedig a kovetkezo felteteleket koti:
[ policy_anything ]
countryName = optional
stateOrProvinceName = optional
localityName = optional
organizationName = optional
organizationalUnitName = optional
commonName = supplied
emailAddress = optional
(magyarul minden a commonName-n kivul opcionalis)
>
> > Namost, a demoCA/cacert.pem-et be kell importalni a windows-os gep
> > kulcstaraba, mint trusted kulcs. Ezt nem tudom pontosan hogyan kell, de az
>
> Ez akkor azt fogja jelenteni, hogy akinel ez a kulcs van,
> az meg fog bizni a szerverben, ugye? Tehat nem erdekes,
> ha valaki jogosulatlanul hozzajut ehhez a kulcshoz.
igy van.
>
> > IE-ben a Kulcsok alatt biztosan megteheto. A Courier-IMAP-nak szuksege van a
> > pop3s.crt-re, es a pop3s.key-re. Elkepzelheto, hogy mindkettot egy fileban
> > keresi, akkor ossze kell masolni a -----BEGIN xxxxx ----- reszeket egy
> > fileba, es azt megadni neki.
>
> Ha jol ertettem, akkor te a newreq.pem fajlt nevezted el
> ketfelekeppen. Tehat nalam csak egy fajl van, es ezt kell
> megadni a Courier-nak.
mi van ebben a newreq.pem-ben? nem ketfelekeppen neveztem el, a CSR
(newreq.pem) es a kulcs (ez nem volt neked korabban, en pop3s.key-nek
neveztem) ket kulonbozo dolog, es teljesen masra tartozik.
> > Ezek utan elvileg Zorp-os pluggal, vagy kozvetlenul mennie kell a dolognak.
>
> Nagyon orulnek, ha eljutnek eddig :)
>
> > A zorppal mit szeretnel csinalni? A zorpig es a zorptol is titkositottan
> > menjen a forgalom? Ha igen, akkor ket dolgot kell beallitanod:
>
> A vegso cel az ez lenne. Ha eljutok addig, hogy a sima
> pluggal mukodik, akkor kiprobalom.
>
>
> Akkor most leirom, hogy en hogyan generaltam a fajlokat.
>
> Elotte szerkesztettem egy picit ezt a CA.pl fajlt. Kiegeszitettem
> a kovetkezovel:
> # create a certificate
> system ("$REQ -new -x509 -nodes -keyout newreq.pem -out newreq.pem $DAYS");
> $RET=$?;
> print "Certificate (and private key) is in newreq.pem\n"
> } elsif (/^-newreq$/) {
> # create a certificate request
> system ("$REQ -new -nodes -keyout newreq.pem -out newreq.pem $DAYS");
>
> Mindket system-mel kezdodo sorba beirtam a -nodes kapcsolot.
>
> CA.pl -newca
> Itt ugyanazokat a valaszokat adtam, amiket fent mar leirtam.
> CA.pl -newreq
> (openssl req -new -keyout newreq.pem -out newreq.pem -days 365)
ez osszefuzi a -keyout-ot es az -out-ot vagy felulirja egyik a masikat?
> A valaszok itt is ugyanazok.
> CA.pl -sign
> Sign the certificate? [y/n]:y
> 1 out of 1 certificate requests certified, commit? [y/n]y
> Write out database with 1 new entries
> Data Base Updated
> Signed certificate is in newcert.pem
>
> Szoval ugy nez ki, hogy itt sikeresen alairta.
>
> En a CA.pl fajlban leirtak alapjan generaltam a kulcsokat,
> meghagyva az alapertelmezett neveket.
>
> Miert nem mukodik az altalad leirt verzio, es jo-e az,
> ahogy en csinaltam a dolgokat?
>
> Megprobalom osszefoglalni a sajat szavaimmal:
> 1. Kell generalni egy CA publikus kulcsot, amit el kell
> juttatni a klienseknek (be kell importalniuk).
>
> 2. Ezutan kell generalni egy Certificate Signing Request
> fajlt, amit a CA-val kell aliratni.
>
> 3. Ha alairtak a Certificate Signing Request -et, akkor
> kapunk egy certificate -et.
igy van. csak egy certificate-hez mindig tartozik privat kulcs is.
egy szerver szolgaltatashoz mindig kell egy privat kulcs, es egy
certificate. A certificate-t a CA adja a CSR alapjan.
tehat a folyamatban szerepel:
CA: privat kulcs (demoCA/private/cakey.pem), onalairt certificate (demoCA/cacert.pem)
Szolgaltatas: privat kulcs (pop3s.key), certificate signing request (pop3s.csr),
es certificate (pop3s.crt)
ahogy nezem neked a pop3s.key+pop3s.csr egy fileba keletkezik newreq.pem-neven.
Ez biztosan nem jo, hiszen a szolgaltatasodnak egy certificate kell es egy
privat kulcs.
--
Bazsi
PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1