[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