[zorp-hu] ssl-es proxy

Kosa Attila atkosa@shinwa.hu
Thu, 23 Aug 2001 13:43:14 +0200


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");


A kulcs elkeszitese a kovetkezo lepes:
# ./CA.pl -newca
CA certificate filename (or enter to create)

Making CA certificate ...
Using configuration from /usr/lib/ssl/openssl.cnf
Generating a 1024 bit RSA private key
.......++++++
.................................++++++
writing new private key to './demoCA/private/cakey.pem'

# Ide kell egy jelszo, amit meg kell jegyezni :)

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

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

Please enter the following 'extra' attributes
to be sent with your certificate request
# Ezt uresen hagyva csak egy Entert utottem
A challenge password []:
# Ezt uresen hagyva csak egy Entert utottem
An optional company name []:
Request (and private key) is in newreq.pem

Ez a lepes generalt egy newreq.pem fajlt abba a konyvtarba,
ahol alltunk (ebben az esetben a /root/tmp konyvtarba).

A kovetkezo lepes az igazolas alairasa:
# ./CA.pl -sign
Using configuration from /usr/lib/ssl/openssl.cnf
# Ide beirjuk a fent megadott jelszot
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 Kft.'
organizationalUnitName:PRINTABLE:'Sysadmin'
commonName            :PRINTABLE:'belso.mail.szerver.neve'
emailAddress          :IA5STRING:'root@cegnev.hu'
Certificate is to be certified until Aug 22 09:00:05 2002 
GMT (365 days)
# Itt nyomtam egy "y"-t es egy Entert
Sign the certificate? [y/n]:
# Itt nyomtam egy "y"-t es egy Entert
1 out of 1 certificate requests certified, commit? [y/n]
Write out database with 1 new entries
Data Base Updated
Signed certificate is in newcert.pem

Ez a lepes generalt egy newcert.pem fajlt abba a 
konyvtarba, ahol alltunk (ebben az esetben a /root/tmp/).

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

# 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.

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?

- 01.pem -- a fajl tartalma (csak az elejebol idezek):
Certificate:
    Data:
        Version: 3 (0x2)
        Serial Number: 1 (0x1)
        Signature Algorithm: md5WithRSAEncryption
	Issuer: C=HU, ST=Hungary, L=Miskolc, O=Cegnev Kft. CA, OU=Sysadmin, CN=belso.mail.szerver.neve/Email=root@cegnev.hu
	Validity
	    Not Before: Aug 23 10:41:08 2001 GMT
            Not After : Aug 23 10:41:08 2002 GMT
	Subject: C=HU, ST=Hungary, L=Miskolc, O=Cegnev Kft., OU=Sysadmin, CN=belso.mail.szerver.neve/Email=root@cegnev.hu
	Subject Public Key Info:
	    Public Key Algorithm: rsaEncryption
	    RSA Public Key: (1024 bit)

[... itt meg van egy csomo sor ...]

Signature Algorithm: md5WithRSAEncryption
[... itt van egy csomo betu-szam ...]

-----BEGIN CERTIFICATE-----
[... itt van egy csomo betu-szam ...]
-----END CERTIFICATE-----

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

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 :)

-- 
		Udvozlettel
				    Zsiga