stunnel certificate

Fórumok

Hello

Stunnellel csinaltam SSL titkositott csatornat (SMTPS) amit teljesen jol mukodik.
Most jott az az igeny, hogy legyen hiteles alairt tanusitvanya az SMTPnek.
Megkaptam a Netlocktol a .p7b es .pem fileokat, az stunnel.pem-et lecsereltem az uj pem-re.

Erre ez a valasz.
2010.08.12 20:44:50 LOG7[14793:47869930553536]: Wrote 1024 new random bytes to /root/.rnd
2010.08.12 20:44:50 LOG7[14793:47869930553536]: RAND_status claims sufficient entropy for the PRNG
2010.08.12 20:44:50 LOG6[14793:47869930553536]: PRNG seeded successfully
2010.08.12 20:44:50 LOG3[14793:47869930553536]: Error reading certificate file: stunnel.pem
2010.08.12 20:44:50 LOG3[14793:47869930553536]: error stack: 140DC009 : error:140DC009:SSL routines:SSL_CTX_use_certificate_chain_file:PEM lib
2010.08.12 20:44:50 LOG3[14793:47869930553536]: SSL_CTX_use_certificate_chain_file: 906D06C: error:0906D06C:PEM routines:PEM_read_bio:no start line

Ha en keszitek az OpenSSL-el pem-et, azt kivaloan viszi. Mit lehetne ezzel tenni ?

Hozzászólások

A hibaüzenet alapján (no start line) egy tipp: a -----BEGIN CERTIFICATE----- sornak az első sornak kell lennie a pem file-ban és nem lehet whitespace karakter sem előtte, vagy nem is pem formátumú a file a neve ellenére.

Szerintem nem kellene hogy probléma legyen a privát kulcs, hogy ha a certificate is benne van a PEM-ben:

Pl. egy ilyen formátumú PEM az megy rendesen:


-----BEGIN RSA PRIVATE KEY-----
...a privát kulcs...
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
...a certificate...
-----END CERTIFICATE-----

én több tanúsítványt is vettem már a NetLock-tól és mindegyik megy az stunellel

domain.key (ezt én állítottam elő a Certificate Request-tel együtt)
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----

domain.cer (ezt küldte vissza a NetLock)
-----BEGIN CERTIFICATE-----
...
-----END CERTIFICATE-----

stunnel.conf részlet:
cert = /path/to/domain.cer
key = /path/to/domain.key

stunnel v4.22

A http://www.netlock.hu/html/ssl/megrendeles.html oldalon több leírás is van különböző programokhoz. Stunnelhez jó az apache féle leírás.

Jelszó nélküli kulcs:
$ openssl req -new -nodes -keyout www_domain_com.key -out www_domain_com.csr

Ha ez megvan, akkor a www_domain_com.csr tartalmát kell feltölteni a NetLockhoz.

Fogod, es a ket blokkot kulon fajlba szeded, kulon a certet, kulon a kulcsot, majd a jonci altal irt konfigreszletet hasznalod fel.

Tehat, a .cer fajlba kerul a "BEGIN CERTIFICATE" ... "END CERTIFICATE" kozti resz, a .key fajlba meg a kulcs.

Tipp: erdemes cer helyett crt kiterjesztesre raszokni mindenutt, azt ugyanis a windows barmikor jo tipusu tanusitvanynak ertelmezi, a .cer viszont asszem DER formatumu tanusitvanyt feltetelez (ez egy full binaris formatum). Tudom, hogy itt most nincs szo windowsrol, de ha az ember megszok ilyen apro dolgokat, akkor eggyel kevesebb szopas van, ha oda kerul a sor.
--


Ki oda vagyik, hol szall a galamb, elszalasztja a kincset itt alant.

Egy p7b es egy pem fileom van, amit kaptam a server tulajdonosaitol.
Azokbol ezt nem lehet kihozni ?

Ebből nehéz megtudnunk mi van ezekben a fileokban. Az első kis szerencsével egy PKCS #7 file ami kizárólag a certificate(ke)-t tartalmazhatja:
(ezt onnan tudod meg, hogy -----BEGIN PKCS7----- file rész van az elején)
(linux cmdline a feltételezett file kibontására:)
openssl pkcs7 -print_certs -in kapott.p7b -out konvertalt.pem

Ahhoz, hogy teljes legyen az örömöd kellene 1 privát kulcs is ezt tartalmazhatná a pem file is amit kaptál... de így nehéz segíteni.
(u.i: semmi köze az stunnel-hez, sőt linuxhoz sem, de még nem is haladó)

Közben elolvastam egy másik hozzászólásod, és az alapján már tudjuk, hogy a .pem file tartalmazza a kulcsot, a kérdés az, hogy a .pem ezt tartalmazza csak? Illetve, hogy encrypt formátumban-e.
(nehogy bemásold ide, mert akkor csinálhatsz újat felodás módja: belenézel, ha csak -----BEGIN RSA PRIVATE KEY----- és -----END RSA PRIVATE KEY----- közötti szöveg van benne akkor ez csak a kulcs, és ha itt van olyan benne, hogy ENCRYPTED akkor kódolt)

Ha csak és KIZAROLAG azt tartalmazza és encrypted akkor sajna az stunnel igényeit ezzel nem tudod kielégíteni, kell a kulcsnak a jelszava, az encryptet el kell távolítani róla.
(ennek módja: openssl rsa -in akarmi.pem(ezt kaptad) -out akarmi_unenc.key)
(ha nem kódolt akkor: cp akarmi.pem akarmi_unenc.key)

Miután a fenti .key összeállt, akkor ennek és a fenti file(konvertalt.pem) állíts össze egy ez_kell_az_stunnelnek.pem filet (cat akarmi_unenc.key(ezt kaptad vagy ezt kodoltad ki) >> ez_kell_az_stunnelnek.pem; cat konvertalt.pem >> ez_kell_az_stunnelnek.pem ) mivel az stunnel ha jól emlékszem így várja a .pem-et (unencrypted key , certificates)
FIGYELJ erősen a kikódolt kulcsfile olvashatóságára, ha valaki más is olvashatja oda a titkosság, és a biztonság!

Innen már csak az a kérdés merül fel, miért használs stunnelt 2010-ben SMTPS megoldásra, mikor az összes komoly SMTP daemon szépen kezeli ezeket a problémákat.
Komolyan meg kellene fontolni, hogy ezeket az információkat ne az stunnel-hez hozd létre, hanem az SMTP szervernek add át információként.
Ja és minimum elvárás, ha elvállalsz ilyet: tudd, hogy mit kaptál. Ez minden munkára igaz.