[zorp-hu] ssl-es proxy

Balazs Scheidler bazsi@balabit.hu
Thu, 23 Aug 2001 18:00:35 +0200


On Thu, Aug 23, 2001 at 01:43:14PM +0200, Kosa Attila wrote:
> Hello!
> Az elozo $subject nem igazan passzolt mar a temahoz.
> 
> Kicsit nehezfeju vagyok, de ezt mar megszokhattatok :)
> Ezert reszletesen leirom, hogy mit hogyan csinaltam:
> 
> # cd /root
> # mkdir tmp
> # cd tmp
> # cp /usr/lib/ssl/misc/CA.pl .
> # vi CA.pl
> 
> Ezt a reszt kijavitottam benne (azt irtam bele pluszba,
> hogy "-nodes"):
> # 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");
                                        ^^^^^^^^^^      ^^^^^^^^^^

Az openssl -req-nek ket kimenete van. Kiprobaltam ilyenkor beleirja a privat
kulcsot es a csr-t is ugyanabba a fileba. Namost, ha ezt alairtad, akkor
lesz egy newcert.pem, ami viszont csak a certificate-t tartalmazza. a
POP3S-nek viszont kell a cert _es_ a kulcs.


> 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 Kft. CA
> Organizational Unit Name (eg, section) []: Sysadmin
> Common Name (eg, YOUR name) []: belso.mail.szerver.neve
> Email Address []: root@cegnev.hu

az Organization Name: Cegnev Kft, a commonName pedig nem a
belso.mail.szerver.neve, hanem Cegnev Kft CA.

> Ekkor mar mi vagyunk a sajat azonosito-szolgaltatonk.
> Keletkezett egy demoCA nevu konyvtar, amely a kovetkezo
> fajlokat tartalmazta:
> - cacert.pem
> - certs (ures konyvtar)
> - crl (ures konyvtar)
> - index.txt
> - newcerts (ures konyvtar)
> - private (konyvtar)
>     - cakey.pem
> - serial
> 
> A kovetkezo lepes:
> # ./CA.pl -newreq
> Using configuration from /usr/lib/ssl/openssl.cnf
> Generating a 1024 bit RSA private key
> ..................++++++
> ............++++++
> writing new private key to 'newreq.pem'
> -----
> You are about to be asked to enter information that will be 
> incorporated
> into your certificate request.
> What you are about to enter is what is called a 
> Distinguished Name or a DN.
> There are quite a few fields but you can leave some blank
> For some fields there will be a default value,
> If you enter '.', the field will be left blank.
> -----
> 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 Kft.
> Organizational Unit Name (eg, section) []: Sysadmin
> Common Name (eg, YOUR name) []: belso.mail.szerver.neve
> Email Address []: root@cegnev.hu
> 
> Ez a lepes generalt egy newreq.pem fajlt abba a konyvtarba,
> ahol alltunk (ebben az esetben a /root/tmp konyvtarba).

igen. a privat kulcsunk viszont a request mellett van.

> A /usr/lib/ssl/openssl.cnf fajl (ami egy link a
> /etc/ssl/openssl.cnf fajlra) a kovetkezoket tartalmazza:
> 
> # For the CA policy
> [ policy_match ]
> countryName             = HU
> stateOrProvinceName     = Hungary
> organizationName        = Cegnev Kft.
> organizationalUnitName  = Sysadmin
> commonName              = belso.mail.szerver.neve
> emailAddress            = root@cegnev.hu

ezt itt nem kitolteni kell. ez csak megmondja az openssl-nek, hogy a
policy_match policy alkalmazasakor milyen ellenorzeseken tegyen meg a dn-en.

> 
> # For the 'anything' policy
> # At this point in time, you must list all acceptable 'object'
> # types.
> [ policy_anything ]
> countryName             = optional
> stateOrProvinceName     = optional
> localityName            = optional
> organizationName        = optional
> organizationalUnitName  = optional
> commonName              = supplied
> emailAddress            = optional
> 
> Tehat a "policy_anything" resz nincs kitoltve.

nem nincs kitoltve, hanem annyit mondasz meg az openssl-nek, hogy a
policy_anything alkalmazasakor egyedul a commonName kotelezo.

> 
> A kovetkezo fajlokkal rendelkezunk:
> - demoCA (konyvtar)
>     - cacert.pem
>     - certs (ures konyvtar)
>     - crl (ures konyvtar)
>     - index.txt
>     - index.txt.old
>     - newcerts (konyvtar)
> 	- 01.pem
>     - private (konyvtar)
> 	- cakey.pem
>     - serial
> - newcert.pem
> - newreq.pem
> 
> Megprobalom osszerendelni a fajlok neveit a 
> rendeltetesukkel:
> - cacert.pem -- a CA publikus kulcsa, ezt kell eljuttatni 
> az outlooknak, sajat maga altal van alairva
> 
> - cakey.pem -- a CA titkos kulcsa, amivel hitelesit
> 
> - newcert.pem -- a szerver-szolgaltatas CA altala alairt 
> certificate-je
> 
> - newreq.pem -- (ez egy Certificate Signing Request melyet 
> kulcsgeneralas utan kuld el az igenylo a CA-nak alairasra). 
> A zarojelben levo reszt irtad te, de a generalaskor azt 
> mondja, hogy "writing new private key to 'newreq.pem'". 
> Akkor nem ez megis a szerver-szolgaltatas titkos kulcsa?

mindketto abban van, hiszen mindket adatot ugyanabba a fileba irtad
generalaskor.

> Az elozo leveledbol az derult ki, hogy 5 fajlra van 
> szuksegunk, es az (szamszeruleg) a rendelkezesunkre all :)
> De vajon jol ertelmeztem-e a rendeltetesuket?

tehat a pop3s-nek kell a privat kulcs es a certificate, ahogy en ertem
ezeket egy fileban varja. Tehat a newreq.pem-ben levo privat kulcsot, es a
newcert.pem-ben levo certificate-t egy helyre kell masolni.

> Megprobalnad elmagyarazni, hogy melyik fajl hova (es mire) 
> valo? Most mar keverjuk bele a Zorpot is :) Tetelezzuk  fel,
> hogy a Zorpig es a Zorptol is szeretnem, hogy  titkositottan
> menjen a forgalom. Kerlek, maradjunk a peldaban szereplo 
> fajlneveknel, mert latod, hogy elvesztettem a fonalat :)

ha a zorp is a kepbe jon, akkor a Zorp kliens oldalanak kell egy
certificate-privat kulcs par (hiszen a kliens fele o egy szerver), amit a
pop3s-hez hasonloan kell generalnod. a szerver fele csak akkor kell barmi
is, ha ellenorzni akarod a server ceritifcate-jet. 

tehat a kovetkezo dolgaid vannak:

outlook: ca certificate import
   zorp: pop3sproxy.crt + pop3sproxy.key
  pop3s: pop3s.crt + pop3s.key

Ha a szerver certjet a zorppal ellenoriztetni akarod, akkor kell a ca
cert-je a zorpnak is.


-- 
Bazsi
PGP info: KeyID 9AF8D0A9 Fingerprint CD27 CFB0 802C 0944 9CFD 804E C82C 8EB1