Hogyan tudom az SSL kulcsot betenni lighttpd alá?

Van egy szerver. Eddig telepítéskor feltett saját maga által aláírt kulcs volt.

Most, hogy lejárt, gondoltam nosza, rögtön akkor jó lenne készíteni egy szélesebb körben elfogadott kulcsot, úgyis sokan panaszkodtak, hogy self signed.

Készítettem a gépen kulcsot (gep-key.pem). Készítettem certificate request-et.

Felmentem a StartSSL oldalára, a azonosítás után feltoltam a certificate request-et, azt elolvasta, és a végén kaptam egy certifikációt.

Na most van 2 fájlom.

Mihez tudok vele kezdeni?

Ha csak a certet teszem oda:
Starting web server: lighttpd2008-04-17 04:08:22: (network.c.377) SSL: Private key does not match the certificate public key, reason: error:0906D06C:PEM routines:PEM_read_bio:no start line /etc/lighttpd/server.pem

OK, no start line, bizonyara a privat kulcsot hianyolja (az alap server.pem ugy kezdődik, hogy -----BEGIN RSA PRIVATE KEY-----

End RSA után Begin Cert.

Szóval cat privát kulcs + startssl cert >server.pem

Starting web server: lighttpd2008-04-17 04:11:41: (network.c.377) SSL: Private key does not match the certificate public key, reason: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch /etc/lighttpd/server.pem

Mi nem stimmel most?

Mit értettem félre, mit cinálok rosszul?

G

Hozzászólások

Valaki?

Én elég tanácstalan vagyok...

"... copy the key and certificate to your server.
Save also the Intermediate CA and StartCom Root CA to your server.

Now decrypt the private key you received:

openssl rsa -in ssl.key -out ssl.key

Add the key to your certificate:

cat ssl.key >> ssl.crt

Create a unified CA chain certificate:

cat ca.crt sub.class1.server.ca.crt >> ca-certs.crt

Ready for configuration of your server. Edit your lighttpd.conf file by adding the following in the file:

$SERVER["socket"] == "YOURIPADDRESS:443" {
   server.document-root     = "/www/html/site"
   server.name              = "yourdomain.com"
   server.errorlog          = "/www/logs/yourdomain_error.log"
   accesslog.filename       = "/www/logs/yourdomain_access.log"
   # SSL related stuff below
   ssl.engine               = "enable"
   ssl.ca-file              = "/etc/lighttpd/ca-certs.crt"
   ssl.pemfile              = "/etc/lighttpd/ssl.crt"
}

Now you should be ready to start/restart your SSL enabled Lighttpd server."

Forrás: http://forum.startcom.org/viewtopic.php?t=719

Szabi

Tök jó, elolvastam, de még mindig nem nagyon értem, hogy mi hiányzik.

A kulcsot magamnak készítettem, decryptelni nem kell.

A kulcs és a cert egy fájlba másolása megtörtént.

A unified CA chain nevű dolog mondjuk hiányzott, de ssl.ca-file paramétert nem is adtam meg (ez persze lehet minden baj forrása, este majd meg tudom nézni).

De nekem úgy tűnt, hogy az ssl.pemfile sorban amit megadtam neki fájl, abban mintha a kulcs és a cert nem passzolna neki össze...

De mindenesetre ha cacertel együtt se megy este, akkor majd erre a fórumra firkálok nekik :-)

Köszi!
G

moto:/etc/lighttpd# openssl rsa -in moto.key.pem -out ssl.key
writing RSA key
moto:/etc/lighttpd# diff moto.key.pem ssl.key
moto:/etc/lighttpd# cat moto.crt >ssl.crt
moto:/etc/lighttpd# cat ssl.key >>ssl.crt
moto:/etc/lighttpd# cat ca.crt sub.class1.server.ca.crt >>ca-certs.crt

Konfig:
$SERVER["socket"] == "0.0.0.0:443" {
ssl.engine = "enable"
ssl.pemfile = "/etc/lighttpd/ssl.crt"
ssl.ca-file = "/etc/lighttpd/ca-certs.crt"
}

Starting web server: lighttpd2008-04-18 01:58:44: (network.c.377) SSL: Private key does not match the certificate public key, reason: error:0B080074:x509 certificate routines:X509_check_private_key:key values mismatch /etc/lighttpd/ssl.crt
failed!

Eh. Szerintem szar ez a certificate.

Megyek panaszkodni :-)

Udv,
G

Ezzel a leírással próbálkoztam most és az alábbi hibaüzenetet kapom a lighttpd újraindításakor:
2015-08-17 13:48:42: (network.c.539) SSL: couldn't read X509 certificate from '/etc/lighttpd/ssl.crt'
Mi lehet az oka? Sajnos keresőben nem találok újabb leírásokat, így mindig az eredeti bejegyzéshez jutok vissza.
Találkozott már valaki ezzel?

Az SSL megoldva. Most egy másik falba ütköztem. Hogyan tudom a meglévő portot átirányítani https-re úgy, hogy a portszám megmaradjon és ne kelljen mindenkinek körbeírni, hogy írják át a címet http://valami.hu:3456/honlap/ -ról https://valami.hu:3456/honlap/ -ra.

Ebből a leírásból indultam ki.

$HTTP["scheme"] == "http" {
$HTTP["host"] =~ ".*" {
url.redirect = ("^/honlap/.*" => "https://%0$0")
}
}

Sajnos nem működik.

A linkelt oldalon az első példa a http://valami.hu/index.html -t átirányítja, de portszámmal már az sem működik.

Megoldható az, amit akarok, vagy felejtsem el?

Az elveket el kell felejteni.

sudo -Hu lighttpd bash -l
cat /etc/lighttpd/ssl.crt

Ha ez mukodik, latja a certet. Fontos, hogy a cat utan ne te ird be az utvonalat, hanem azt masold be, pont ugyanugy, ahogy a lighttpd.conf -ban van. Ha igy mukodik (szerintem nem fog), akkor nem jo a fajl formatuma. Fontos, hogy a BEGIN LOFASZ / END LOFASZ sorokat nem szabad kitorulni, valamint a sorrend szigoruan kulcs, fo cert, tovabbi certek.
--
Blog | @hron84
Üzemeltető macik