asda?‰PNG IHDR ? f ??C1 sRGB ??é gAMA ±?üa pHYs ? ??o¨d GIDATx^íüL”÷e÷Y?a?("Bh?_ò???¢§?q5k?*:t0A-o??¥]VkJ¢M??f?±8\k2íll£1]q?ù???T
Co powinno znajdowa si na Twoim dysku zamin zostaniesz "Certificate Authorities".
Podstawowym oprogramowaniem jest oczywicie openssl.
W tym miejscu naley zachowa czujno
bo openssl MUSI by co najmniej w wersji 0.9.2b dziki czemu
ominie Ci cz karkoomnych
operacji przy pomocy pcks12
ktory take musisz posiada w swoich zasobach dyskowych.
Jeli masz ju zainstalowane powysze oprogramowanie moesz zacz
tworzy certyfikaty.
Konfiguracja openssl.
Zakadam ze openssl jest zainstalowany standardowo czyli w /usr/local/ssl.
Pierwszym krokiem jest
przejrzenie i "dokonfigurowanie" /usr/local/ssl/lib/openssl.cnf.
Mj domowy konfig wyglda nastpujco
(kolorem czerwonym zaznaczylem opcje ktre raczej powiniene zmieni)
:
jeli nie chce Ci si tego
czyta to skocz na koniec konfiga
#
# OpenSSL example configuration file.
# This is mostly being used for generation of certificate requests.
#
RANDFILE
= $ENV::HOME/.rnd
oid_file
= $ENV::HOME/.oid
oid_section
= new_oids
[ new_oids ]
# We can add new OIDs in here for use by 'ca' and 'req'.
# Add a simple OID like this:
# testoid1=1.2.3.4
# Or use config file substitution like this:
# testoid2=${testoid1}.5.6
####################################################################
[ ca ]
default_ca = CA_default
# The default ca section
####################################################################
[ CA_default ]
dir
= ./demoCA
# Where everything is kept
certs
= $dir/certs
# Where the issued certs are kept
crl_dir = $dir/crl
# Where the issued crl are kept
database = $dir/index.txt
# database index file.
new_certs_dir = $dir/newcerts
# default place for new certs.
certificate = $dir/cacert.pem
# The CA certificate
serial = $dir/serial
# The current serial number
crl
= $dir/crl.pem #
The current CRL
private_key = $dir/private/cakey.pem# The
private key
RANDFILE = $dir/private/.rand
# private random number file
x509_extensions = usr_cert
# The extensions to add to the cert
crl_extensions = crl_ext
# Extensions to add to CRL
default_days = 365
# how long to certify for
default_crl_days= 30
# how long before next CRL
default_md = md5
# which md to use.
preserve = no
# keep passed DN ordering
# A few difference way of specifying how similar the request should
look
# For type CA, the listed attributes must be the same, and the optional
# and supplied fields are just that :-)
policy = policy_match
# For the CA policy
[ policy_match ]
countryName
= match
stateOrProvinceName = match
organizationName = match
organizationalUnitName = optional
commonName
= supplied
emailAddress
= optional
# 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
####################################################################
[ req ]
default_bits
= 1024
default_keyfile
= privkey.pem
distinguished_name = req_distinguished_name
attributes
= req_attributes
x509_extensions = v3_ca # The extensions to add to the self signed
cert
[ req_distinguished_name ]
countryName
= Country Name (2 letter code)
countryName_default
= PL
countryName_min
= 2
countryName_max
= 2
stateOrProvinceName
= State i Prowincja
stateOrProvinceName_default = State-Prowincja
domyslna
localityName
= Locality Name (eg, city)
localityName_default
= Lodz
0.organizationName
= Organization Name (eg, company)
0.organizationName_default = Nawza
Organizacji
# we can do this but it is not needed normally :-)
#1.organizationName
= Second Organization Name (eg, company)
#1.organizationName_default = World Wide
Web Pty Ltd
organizationalUnitName
= Organizational Unit Name (eg, section)
organizationalUnitName_default = Unit
name domyslny
commonName
= Common Name (eg, YOUR name)
commonName_max
= 64
emailAddress
= Email Address
emailAddress_max
= 40
# SET-ex3
= SET extension number 3
[ req_attributes ]
challengePassword
= A challenge password
challengePassword_min = 4
challengePassword_max = 20
unstructuredName
= An optional company name
[ usr_cert ]
# These extensions are added when 'ca' signs a request.
# This goes against PKIX guidelines but some CAs do it and some
software
# requires this to avoid interpreting an end user certificate as
a CA.
basicConstraints=CA:FALSE
# Here are some examples of the usage of nsCertType. If it is omitted
# the certificate can be used for anything *except* object signing.
# This is OK for an SSL server.
#nsCertType
= server
# For an object signing certificate this would be used.
#nsCertType = objsign
# For normal client use this is typical
nsCertType = client, email
# This is typical also
keyUsage = nonRepudiation, digitalSignature, keyEncipherment
nsComment
= "OpenSSL Generated Certificate"
# PKIX recommendations
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid,issuer:always
# Import the email address.
subjectAltName=email:copy
# Copy subject details
issuerAltName=issuer:copy
#nsCaRevocationUrl
= http://www.domain.dom/ca-crl.pem
#nsBaseUrl
#nsRevocationUrl
#nsRenewalUrl
#nsCaPolicyUrl
#nsSslServerName
[ v3_ca]
# Extensions for a typical CA
# It's a CA certificate
basicConstraints = CA:true
# PKIX recommendation.
subjectKeyIdentifier=hash
authorityKeyIdentifier=keyid:always,issuer:always
# This is what PKIX recommends but some broken software chokes on
critical
# extensions.
#basicConstraints = critical,CA:true
# Key usage: again this should really be critical.
keyUsage = cRLSign, keyCertSign
# Some might want this also
nsCertType = sslCA, emailCA, objCA
# Include email address in subject alt name: another PKIX recommendation
subjectAltName=email:copy
# Copy issuer details
issuerAltName=issuer:copy
# RAW DER hex encoding of an extension: beware experts only!
# 1.2.3.5=RAW:02:03
# You can even override a supported extension:
# basicConstraints= critical, RAW:30:03:01:01:FF
[ crl_ext ]
# CRL extensions.
# Only issuerAltName and authorityKeyIdentifier make any sense in
a CRL.
issuerAltName=issuer:copy
authorityKeyIdentifier=keyid:always,issuer:always
################################################################################
########## koniec pliku openssl.cnf
Jak wida zmiany s praktycznie kosmetyczne.
Naley zwrcic jedynie uwag na opcj default_bits w
sekcji req.
W momencie generowania certyfikatu CA powinna mie ona warto 1024
lub wicej, natomiast w trakcie tworzenia
certyfikatw klienckich winno mie si na uwadze wredn cech produktw
M$ dostpnych poza granicami USA.
Nie s one w stanie zaimportowa kluczy majcych wicej ni 512 bitw.
W takim przypadku default_bits naley
zmniejszy do tej wartoci. Jeli chodzi o Netscapa konieczno taka
nie wystpuje, nawet gdy nie jest on
patchowany przy pomocy Fortify.
Jednake klucz nie powinien by wikszy ni 1024 bity.
Generowanie certyfikatu CA
Pierwszy czynnoci jak naley wykona jest wygenerowanie certyfikatu
CA czyli czego czym bd
podpiswane certyfikaty udostpniane klientom. Uruchom rxvt lub co
innego i wykonaj polecenie:
adas:~# cd /usr/local/ssl/bin
adas:/usr/local/ssl/bin# ./CA.pl -newca
CA certificate filename (or enter to create)
Making CA certificate ...
Using configuration from /usr/local/ssl/lib/openssl.cnf
Generating a 1024 bit RSA private key
..+++++
....+++++
writing new private key to './demoCA/private/cakey.pem'
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) [PL]:
State i Prowincja [Kraina Bezrobotnych Szwaczek]:
Locality Name (eg, city) [Lodz]:
Organization Name (eg, company) [Instytut Badan Czarow i Magii]:
Organizational Unit Name (eg, section) [Komorka d/s Egzorcyzmow
i Opentan]:
Common Name (eg, YOUR name) []:Adam Hernik
Email Address []:adas@infocentrum.com
adas:/usr/local/ssl/bin#
Skrypt CA.pl uruchomiony poraz pierwszy tworzy w /usr/local/ssl/bin
katalog o nazwie demoCA w ktrym znajduje si
wygenerowany przed chwil certyfikat publiczny cacert.pem (doczany
pniej do certyfikatw klienckich) oraz tajny
zabezpieczony hasem klucz cakey.pem
ktrym bdziesz podpisywa certyfikaty wydawane uytkownikom. Klucz i haso
oczywicie naley dobrze chroni i najlepiej jest gdy znajduje si
na serwerze tylko w momencie generowania certyfikatu.
Ponowne uruchomienie CA.pl z parametrem -newca niszczy to co pracowicie
stworzye i generuje nowy klucz i certyfikat.
Tworzenie certyfikatu dla stunnela i innych serwerw
Zanim si do tego zabierzesz powiniene lekko zmodyfikowac skrypt CA.pl
oraz plik konfiguracyjny openssl.cnf.
Skopiuj je odpowiednio do plikw /usr/local/ssl/bin/CAserv.pl
i /usr/local/ssl/lib/openssl_serv.cnf.
Generowane certyfikaty domylnie zabezpieczone s hasem, w takim przypadku
w momencie startu stunnela zawsze
bdziesz pytany o haslo zabezpieczajce, co skutecznie uniemoliwi
automatyczne uruchamianie programu w czasie
bootowania serwera, czy te przy prbie wystartowania go przez
inetd. Naley poprawi linie 40 i 41 skryptu
CAserv.pl z
linia 40:
$REQ="openssl req $SSLEAY_CONFIG";
na
$REQ="openssl req -nodes -config /usr/local/ssl/lib/openssl_serv.cnf";
linia 41:
$CA="openssl ca $SSLEAY_CONFIG";
na
$CA="openssl ca -config /usr/local/ssl/lib/openssl_serv.cnf";
Natomiast w pliku /usr/local/ssl/lib/openssl_serv.cnf nalezy
w sekcji usr_cert "zahashowa" linijk
nsCertType = client, email oraz "odhashowa"
linijk nsCertType = server . Jeli tego
nie zrobisz klient nie bdzie
poprawnie rozpoznawa typu certyfikatu. A teraz kolej na wygenerowanie
"requestu" posyanego zazwyczaj do CA.
Bdc w katalogu /usr/local/ssl/bin wykonaj:
adas:/usr/local/ssl/bin# ./CAserv.pl -newreq
Using configuration from /usr/local/ssl/lib/openssl_serv.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) [PL]:
State i Prowincja [Kraina Bezrobotnych Szwaczek]:Kraina latajacych
scyzorykow
Locality Name (eg, city) [Lodz]:Sielpia
Organization Name (eg, company) [Instytut Badan Czarow i Magii]:Bar
Sloneczko
Organizational Unit Name (eg, section) [Komorka d/s Egzorcyzmow
i Opentan]:Kuflownia
Common Name (eg, YOUR name) []:adas.pl
Email Address []:adas@adas.pl
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:
Request (and private key) is in newreq.pem
adas:/usr/local/ssl/bin#
Polem o ktrym warto wspomnie jest "Common Name" (zaznaczone na czerwono).
W trakcie generowania requestu
naley w tym miejscu wpisa FQDN serwera na ktrym bdzie on
uywany. W przeciwnym wypadku w chwili
poczenia klient bdzie twierdzi, e certyfikat jakim przedstawia
si serwer nie naley do niego. Unikniemy w ten
sposb niepotrzebnego klikania. Kolejn czynnoci jest podpisanie
wygenerowanego requestu. W katalogu
/usr/local/ssl/bin wykonaj polecenie:
adas:/usr/local/ssl/bin# ./CAserv.pl -sign
Using configuration from /usr/local/ssl/lib/openssl.cnf
Enter PEM pass phrase:
Check that the request matches the signature
Signature ok
The Subjects Distinguished Name is as follows
countryName
:PRINTABLE:'PL'
stateOrProvinceName :PRINTABLE:'Kraina latajacych scyzorykow'
localityName
:PRINTABLE:'Sielpia'
organizationName :PRINTABLE:'Bar Sloneczko'
organizationalUnitName:PRINTABLE:'Kuflownia'
commonName
:PRINTABLE:'adas.pl'
emailAddress
:IA5STRING:'adas@adas.pl'
Certificate is to be certified until Mar 26 21:06:13 2000 GMT (365
days)
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
adas:/usr/local/ssl/bin#
W trakcie podpisywania bdziesz pytany o haso zabezpieczajce klucz
prywatny CA (zaznaczone na zielono).
Po tej operacji powiniene w katalogu /usr/local/ssl/bin otrzyma 2
pliki: newcert.pem oraz newreq.pem.
Zanim zaczniesz ich uywa musisz wykona jeszcze jedn operacje, a
mianowicie zorzy wszystko do kupy.
Wykonujesz: cat newcert.pem newreq.pem > httpds.pem a nastpnie
poddajesz tak powstay certyfikat edycji.
Naley z pliku httpds.pem naley usun wszystkie niepotrzebne informacje
tak by pozosta jedynie certyfikat oraz
klucz prywatny. Po tej operacji plik httpds.pem powinien wyglda mniej
wicej tak:
issuer :/C=PL/ST=Kraina Bezrobotnych Szwaczek/L=Lodz/O=Instytut Badan
Czarow i Magii/OU=Komorka d/s Egzorcyzmow i opentan/CN=Adam Hernik/Email=adas@infocentrum.com
subject:/C=PL/ST=Kraina latajacych scyzorykow/L=Sielpia/O=Bar Sloneczko/OU=Kuflownia/CN=adas.pl/
Email=adas@adas.pl
-----BEGIN CERTIFICATE-----
Tu s magiczne dane
-----END CERTIFICATE-----
-----BEGIN RSA PRIVATE KEY-----
I tu te s magiczne dane
-----END RSA PRIVATE KEY-----
Spreparowany w ten sposb plik umieszczamy w katalogu /usr/local/ssl/certs
i zajmujemy si generowaniem dwu
certyfikatw klienckich.
Generowanie i importowanie certyfikatw klienckich
do Netscape Communikatora.
Generalnie s dwie metody tworzenia i importowania certyfikatw klienckich
do Netscapa
Sposb pierwszy:
Przy pomocy komendy CA.pl -newreq wygeneruj request a nastpnie
przy pomocy CA.pl -sign podpisz go.
Pytanie o challenge password zignoruj. Kolejn czynnoci jest
scalenie i podczyszczenie certyfikatu.
W przypadku certyfikatu klienta wane jest podanie prawidowego
adresu email ! Bez tego nie bdzie mona
podpisywa i szyfrowa listw. Stwrz dwa certyfikaty. Bd one
potrzebne do wyjanienia dziaania opcji -v 3
programu stunnel. Zakadam e pierwszy certyfikat naley do Jana Kowalskiego
jan@ibczim.pl zachowany w
pliku jan.pem a drugi do Genowefy Pigwy pigwa@scyzoryki.pl znajdujcym
si w pliku pigwa.pem. Przed
zaimportowaniem plikw do Netscpea naley przekonwertowa je z formatu
PEM do PCKS12. Wykonuje si to
przy pomocy wspomnianego na pocztku programu pcks12. Aby przekonwertowa
certyfikat Jan Kowalskiego,
w katalogu w ktorym znajduje si plik jan.pem wykonaj:
pkcs12 -export -name "Jan Kowalski jan@ibczim.pl" -in jan.pem -out jan.p12 -certfile /usr/local/ssl/bin/demoCA/cacert.pem
(jest to jedna linia !!!)
w wyniku czego powstanie plik jan.p12 ktry mona zaimportowa do Netscapea.
Bardzo wan opcj jest
-certfile /usr/local/ssl/bin/demoCA/cacert.pem. Bez niej
nie bdzie mona w prawidowy sposb podpisywa listw.
Przecznik -certfile powoduje doczenie publicznego certyfikatu CA
do certyfikatu klienta dziki czemu Netscape
jest wstanie "wyekstrachowa" certyfikat CA i doda go do wewntrznej
bazy CA. Wykonaj powysz operacj take
dla pigwy. Samo zaimportowanie certyfikatu jest bardzo proste wykonuje
si to klikajc w Netscape na
Security-> Yours -> Import a Certificate
Po zaimportowaniu naley w Security -> Signers zaznaczy nasz
CA certyfikat a nastpnie klikn na przycisku Edit
oraz "zaczekowa" opcje:
Accept this Certificate Authority for Certifying network sites
Accept this Certificate Authority for Certifying e-mail users
Od tej pory nasz certyfikat bdzie traktowany na rwni z innymi, komercyjnymi.
Sposb drugi:
Polega on na wygenerowaniu i imporcie certyfikatu poprzez strone www.
Wraz z stunnelem dostarczane s
przkadowe strony (dwie) i skrypty (dwa). Skrypty naley raczej
traktowa jako wzorzec i kady powinien napisa
swoje, bardziej bezpieczne. Pierwszym krokiem jest import certyfikatu
CA. Uywa si do tego strony importCA.html
oraz skryptu importCA.sh. Sam skrypt wyglda tak:
#!/bin/bash
echo "Content-type: application/x-x509-ca-cert"
echo
cat /var/lib/httpds/cgi-bin/cacert.pem
cacert.pem jest to oczywicie certyfikat publiczny CA znajdujcy si
w katalogu /usr/local/ssl/bin/demoCA
ktry naley przekopiowa do katalogu cgi-bin serwera httpd oraz nada
mu odpowiednie prawa dostpu.
Po zaimportowaniu certyfikatu CA naley w Security->Signers zaznaczy
do jakich celw bdziemy uznawli
go za wiarygodny. Do generowania certyfikatu klienta wykorzystamy pozosta
strone i skrypt. Zanim do tego dojdzie
naley "dokonfigurowa" skrypt i stworzy potrzebne katalogi.
W /tmp (lub w innym miejscu) nalezy stworzy
katalog ssl a nastpnie przekopiowa do niego katalog /usr/local/bin/demoCA
oraz plik openssl.cnf.
Jako e skrypty domylnie uruchamiane s z prawami uytkownika nobody
naley uczyni go wlacicielem
katalogu /tmp/ssl i caej jego zawartoci. Kolejn czynnoci jest
wygenerowanie pliku .rnd. W Linuxie robimy to
tak:
cat /dev/random > /tmp/ssl/.rnd
czekamy chwilk tak by plik .rnd mia wielko okoo 1024 B po czym
wacicielem pliku robimy uytkownika nobody.
Teraz trzeba przekonfigurowa plik /tmp/ssl/openssl.cnf
#
# OpenSSL example configuration file.
# This is mostly being used for generation of certificate requests.
#
RANDFILE
= /tmp/ssl/.rnd
#oid_file
= /tmp/ssl/.oid
oid_section
= new_oids
[ new_oids ]
# We can add new OIDs in here for use by 'ca' and 'req'.
# Add a simple OID like this:
# testoid1=1.2.3.4
# Or use config file substitution like this:
# testoid2=${testoid1}.5.6
####################################################################
[ ca ]
default_ca = CA_default
# The default ca section
####################################################################
[ CA_default ]
dir
= /tmp/ssl/demoCA
# Where everything is kept
certs
= $dir/certs
# Where the issued certs are kept
crl_dir = $dir/crl
# Where the issued crl are kept
database = $dir/index.txt
# database index file.
new_certs_dir = $dir/newcerts
# default place for new certs.
Naley zmieni opcje zaznaczone na czerwono. Ostatni czynnoci jest
sprawdzenie i ewentualne poprawienie
strony ca.html i skryptu ca.pl. W pliku ca.html nalezy wpisa poprawn
nazw serwera na ktrym znajduje si
skrypt ca.pl czyli linijk <FORM ACTION="http://localhost/cgi-bin/ca.pl"
METHOD=POST>. W ca.pl
naley skontrolowa poprawno podanych cieek oraz wpisa haso jakim
zabezpieczony jest klucz prywatny CA
(zmienna $certpass zaznaczona na czerwono).
#!/usr/bin/perl
#ca.pl
$config = "/tmp/ssl/openssl.cnf";
$capath = "/usr/local/ssl/bin/openssl ca";
$certpass = "tu_jest_haslo";
$tempca = "/tmp/ssl/cli".rand 10000;
$tempout = "/tmp/ssl/certtmp".rand 10000;
$caout = "/tmp/ssl/certwynik.txt";
$CAcert = "/tmp/ssl/demoCA/cacert.pem";
...
Po umieszczeniu tak przygotowanych stron i skryptw na serwerze bdzie mona generowa certyfikaty dla klientw.
Wady i zalety obydwu sposobw generowania i instalowania certyfikatw.
Jak wynika z powyszego opisu bezpieczniejszym
i polecanym przeze mnie jest sposb pierwszy. Jego powan wad
jest fakt e czowiek generujcy certyfikaty znajduje si w posiadaniu
klucza prywatnego osoby wystpujcej o
certyfikat. Oczywicie uczciwy CA powinien
skasowa go, zaraz po utworzeniu. W takim wypadku metoda pierwsza
spenia wszelkie wymogi. Sposb drugi prcz samych wad ma jedn
acz ogromn zalet. Mianowicie klucz prywatny
klienta nigdy nie opuszcza jego komputera. Do wad mona zaliczy
fakt e haso zabezpieczajce klucz prywatny CA
znajduje si na serwerze i to w dodatku w aden sposb nie chronione.
Kolejn wad jest generowanie kompletnych
certyfikatw przez strone www, co moe grozi wykradzeniem klucza prywatnego.
Rozwizaniem moe by skadowanie
requestw w bazie danych a nastpnie rczna ich obrbka przez administratora.
Reasumujc, sposb drugi naley
potraktowa jako demonstracje metody ktr mona przewiczy przed
napisaniem porzdnych skryptw.
Tajemniczy przecznik -v 3 w stunnelu
Stunnel posiada trzy tryby weryfikacji klienta.
Pierwszy opcja -v 1 oznacza e naley sprbowa
zweryfikowa osob nawizujc poczenie czyli uzyska jej
ceryfikat. Jeli operacja ta si nie powiedzie, mimo wszystko dostp
do serwera bdzie zapewniony.
Przecznik -v 2 nakazuje stunnelowi zweryfikowa
klienta. Jeli uytkownik nie posiada certyfikatu lub certyfikat
jest niewany, niewaciwy czy te nie posiadamy certyfikatu CA ktrym
podpisany jest certyfikat klienta
(straszny jest ten jzyk polski) nawizanie poczenia
z serwerem bdzie niemoliwe. I wreszcie opcja -v 3
nakazujca
stunnelowi zweryfikowa klienta a take poszuka jego certyfikatu w
naszej lokalnej bazie.
Dzieki opcji -v 3 moemy stworzy bardzo selektywny dostp do usug
oferowanych przez serwer, unikajc generowania duych iloci certyfikatw.
Uwaga oglna: do poprawnej weryfikacji klienta KONIECZNE
jest posiadanie certyfikatu CA ktrym podpisany jest sprawdzany certyfikat.
Bez tego stunnel nie jest wstanie przeprowadzi poprawnej autoryzacji klienta.
Prba taka koczy si bdami "VERIFY ERROR: self signed certificate
for ....." oraz "SSL_accept: error:140890B1:SSL routines: SSL3_GET_CLIENT_CERTIFICATE:no
certificate returned". A teraz przykad praktyczny: chcemy aby do https
bdcym na porcie 444 miay dostp wszystkie osoby majce certyfikaty
natomiast
do do https na porcie 445 dostp mia tylko Jan Kowalski. Pierwsz
czynnoci jak naley wykona jest skopiowanie
certyfikatu CA do katalogu /usr/local/ssl/certs (default cert
area), nastpnie w tym katalogu naley utworzy
podkatalog o nazwie mytrusted, poczym skopiowa do niego
certyfikat klienta czyli jan.pem. Uwaga: z pliku
jan.pem
MUSISZ usun klucz prywatny !!! Czyli
to co si znajduje midzy
-----BEGIN RSA PRIVATE KEY-----
.......
-----END RSA PRIVATE KEY-----
cznie z powyszymi liniami. Nastpnie w katalogach /usr/local/ssl/certs
i /usr/local/ssl/certs/mytrusted naley
wykona polecenie
/usr/local/ssl/bin/c_rehash ./
Teraz kolej na uruchomienie stunnela:
stunnel -d 444 -r 80 -v 2
oraz
stunnel -d 445 -r 80 -v 3
Netscapem naley poczy sie z https://localhost:444/ a po pytaniu
o certyfikat przedstawi certyfikat nalecy
do pigwy. Dostp do serwera bdzie zapewniony. Czynnoc t naley powtrzy
przedstawiajc si za drugim razem
certyfikatem Jana Kowalskiego. Poczenie take bdzie zrealizowane.
W przypadku https://localhost:445/ wejcie
na serwer bdzie zapewnione tylko po wylegitymowaniu si certyfikatem
Jana Kowalskiego. Po kazdej zmianie w
katalogu /usr/local/ssl/certs/mytrusted naley wykona komend c_rehash
./ i zrestartowa stunnela.