[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