Netsago ez kutatási projekt - cikkek - lépésről lépésre konfiguráció az ssl apache számára

Ha van egy biztonságos webszervert, a felhasználók, a hullámok a biztonsági adatok átadására, biztos lehet abban, hogy a kérések titkosítva, így azok adatai biztonságban vannak. A legjobb módja az Apache 2, a Linux és a Secure Sockets Layer vezető webszervere, biztonságos adatátviteli protokoll használata. A Transport Layer Security (TLS) az SSL fejlesztése, de szinte azonos módon működnek. Csak SSL-re utalok.







Az SSL protokoll a titkosított adatok biztonságos átviteléhez egy webböngésző és egy webszerver között. A legtöbb esetben a kiszolgáló hitelesített, amely lehetővé teszi az ügyfél számára, hogy biztos legyen benne, hogy a kiszolgáló megköveteli, és nem fordítva. Ha azonban létrejött a kapcsolat, mindkét oldal biztonságos, mivel csak az ügyfél és a kiszolgáló fér hozzá a kulcshoz. Ez sok lekérdezés esetén működik, a szerver nem érdekli, hogy mi az ügyfél, amíg ugyanaz az ügyfél marad a kérés időtartama alatt. Ha aggódik az ügyfél hitelesítés miatt, használhatja az ügyfél SSL-tanúsítványait (vagy a htaccess, a Kerberos vagy más közeledő módszereket), de ez nem tekinthető ebben a cikkben.

Ügyféloldalon érdekel, hogy a személy (szerver) küldi-e meg a titkosítani kívánt személyes adatait. Ezért a kiszolgáló, nem pedig az ügyfél hitelesített. Ön aggodalmát fejezi ki továbbá, ha egy harmadik fél részt vesz az adatokhoz való hozzáférésben a küldött formában. Az SSL mindkét típusú biztonsági szolgáltatást nyújtja.

Az SSL protokoll a következőképpen működik:
1. Az ügyfél csatlakozik a webszerverhez, és megadja az elérhető kódok listáját.
2. A kiszolgáló felveszi a legerősebb titkosítást, amely támogatja azt, és az ügyfél, és küld egy igazolást a nevét és titkosítási kulcs által aláírt egy megbízható hitelesítésszolgáltató (Certificate Authority, a továbbiakban - CA), mint például a Verisign.
3. Az ügyfél ellenőrzi a tanúsítványt a CA használatával. A gyakorlatban a CA-készlet helyben van tárolva, így valós idejű kapcsolat nélkül valósítható meg a CA-val, és így gyorsabban.
4. Az ügyfél visszaküldi a kiszolgáló nyilvános kulcsával titkosított számot. Csak a kliens ismeri ezt a számot, és csak a szerver tudja visszafejteni (magánkulcs használatával); ott, ahol a biztonság harmadik féltől származik.
5. A kiszolgáló és az ügyfél egy véletlen számot használva hozza létre az adatátvitel során használt kulcsfontosságú tartalmat.

Ezt a lehető legátláthatóbban szeretnénk az ügyfeleknél elvégezni, hogy az adatátvitel a lehető legegyszerűbb legyen.

Az első lépés egy tanúsítvány létrehozása. Hozzon létre egy tanúsítványt jelszóval vagy anélkül. A jelszó használatának legfontosabb kellemetlensége az a tény, hogy minden alkalommal be kell írnia a szervert. Ezért nem indítható felügyelet nélkül, vagy automatikusan indításkor, például az elektromos áram kikapcsolása után. A beállításaitól függően ez jelentős tény az Ön számára, vagy sem.

Elméletileg a jelszó használatának előnye a védelem növelése. Bár a gyakorlatban a jelszavak nem nyújtanak ilyen nagy védelmet. Ha valaki magánkulcsot olvas vagy másol, akkor már rendelkezik hozzáféréssel a rendszerhez és a jelszó megszerzéséhez, például egy keylogger programmal. A jelszó védve lesz a script-kiddi-tól, de nem egy komoly cracker-ből. Talán a legtöbb ember számára nincs értelme használni.

Vizsgálati célokra vagy egy kis helyi hálózatra létrehozhat egy aláírt tanúsítványt. Ezt a következő parancs futtatásával teheti meg:

A valódi időben futó kiszolgálóval önállóan aláírt tanúsítvány használatával kapcsolatos probléma az, hogy a webhelyen működő bármely böngésző nem ismeri fel a tanúsítványt érvényesnek. Ez azt jelenti, hogy a felhasználó a tanúsítvány megerősítését kérni fogja. Nyilvánvaló, hogy a legtöbb esetben ez nem optimális megoldás. Bár ez normális a vizsgálati célokra, és kis helyi hálózatok esetében rossz lehetőség lenne a CA tanúsítványának megfizetésére.

Ennek ellenére természetesen érdemesebb használni által aláírt igazolást egy megbízható hitelesítésszolgáltató, mint például a Verisign (aki a legnagyobb piaci lefedettség), vagy egy kisebb szervezet. A legtöbb böngészőnek már van előre telepített tanúsítványa a CA által, amely ellenőrzi a webszerver tanúsítványát, amikor az ügyfél csatlakozik. Ez csökkenti a végfelhasználók nehézségeinek számát, és tanúsítja a webhely legitimitását.







A CA által aláírt tanúsítvány megszerzéséhez először kriptográfiai pár létrehozása és tanúsítvány kérése szükséges:

A kiszolgáló kulcs (a fájlkiszolgáló kulcs, amely még egyszer csak a root számára olvasható) marad a webkiszolgálón; A kérelmet (fájl www.example.com.csr) elküldi a CA-nak. Megadhatja a kérés fájlt, ahogyan azt szeretné, de a domainnevének megadásával egyszerűsíti a CA feladatát.

A következő lépés az, hogy elküldjük ezt a fájlt a www.example.com.csr címre a CA-ban, a fizetéssel. Gyorsan kell visszaküldeniük, ha megadta az összes szükséges információt a kérésében. Az Ön által választott CA megmagyarázza a webhelyén végrehajtott műveleteit. Lehet, hogy módosítania kell a fájlformátumot a PEM-nek, de a Verisign esetében ez nem szükséges.

Ha visszaadja a fájlt PEM formátumba, nevezze át a server.crt fájlra (ez nem feltétlenül szükséges, de megfelel Apache feltételeknek), és ellenőrizze:

Ezután ellenőrizze, hogy a két parancs eredménye azonos-e, vagyis. hogy a tanúsítvány magánkulcsnak felel meg:

Most telepítse a kulcsot (a fentiek szerint kiszolgáló kulcsként) és a tanúsítványt (server.crt) az / etc / apache2 / ssl fájlban, vagy ha az eltér a preferált beállítások könyvtárában. Mint fentebb említettük, fontos, hogy ellenőrizze, hogy a server.key olvasható csak a root, míg a szerver tanúsítvány lehet olvasható a világot, hanem tulajdonosa és írható a root csak.


Az Apache összeállítása SSL-vel.

Tehát a tanúsítvány létrejön. Most be kell állítania a kiszolgálót annak használatához.

A legtöbb ember számára az Apache2 telepítésének és kezelésének legjobb módja a terjesztés csomagkezelője. Az Apache2 a Debian-tól az SSL modulhoz tartozik, de alapértelmezés szerint nincs engedélyezve. Ennek engedélyezéséhez futtassa a következő parancsot: a2enmod ssl és indítsa újra a webszervert.

Ehhez adj hozzá egy sort

az /etc/apache2/apache2.conf fájlban (ez a fájl httpd.conf is lehet). Meg kell javítania a mod_ssl.conf fájl megfelelő helyének megadásával. Ezután indítsa újra a webszervert.

Ha az Apache2-t a forráskódból szeretné lefordítani, attól függően, hogy korábban milyen beállításokat használt, előfordulhat, hogy SSL-támogatásban vagy. Ellenőrizze ezt az apache2 -l paranccsal. Ha újra kell fordítani, futtatni kell a ./configure az összes lehetőséget, amit korábban használt, hozzátéve, hogy ez a --enable-ssl és --enable-setenvif (ez utóbbi szükséges kompatibilitást a kiszámíthatatlan Internet Explorer). Ezután telepítse a szokásos módon, a make paranccsal, telepítse és ellenőrizze, hogy a jogosultságok helyesek-e.


Az Apache konfigurálása SSL-vel.

A következő lépés az Apache2 konfigurálása. Az alábbi utasítások a kiszolgáló biztonságos működését (443-as port) és normál webszerverként (80-as port) fogják futtatni. Először is be kell állítania a kiszolgálót, hogy elfogadja a két port kérését. Vagy szerkesztés /etc/apache2/ports.conf (a Debian, belép apache2.conf), vagy szerkeszteni /etc/apache2/apache2.conf, beleértve sorokat:

Ezután módosítsa az / etc / apache2 / sites-enabled / webhelyet az SSL-beállítások használatához. A normál és biztonságos szerver beállításainak elválasztása a VirtualHost segítségével a használat legegyszerűbb módja. A VirtualHost szekcióktól eltérő beállítások (például a ServerAdmin telepítése) mind a (és bármely más) VirtualHost-ra kerülnek alkalmazásra. Adja hozzá a következő szöveget a konfigurációs fájlhoz:

Néhány megjegyzés a konfigurációról:
- Az SSLEngine-nek engedélyezve kell lennie, jelezve, hogy a kiszolgáló SSL-t használ.
- A DocumentRoot beállítja a virtuális gép gyökérkönyvtárát. Ez azt jelenti, hogy a biztonságos tartalmat elválaszthatja a megszokottól.
- Az SSLRequireSSL az SSL használatát kéri (ezen a virtuális kiszolgálón), vagyis a felhasználó nem tud kapcsolódni ehhez a virtuális állomáshoz normál HTTP-kéréssel. Ezért osztottuk meg a biztonságos és normál tartalmat.
- Az SSLProtocol letiltja a protokollokat, amelyek nem TLS v1.0 és SSL v3.0. A modern böngészők számára minden jól fog működni.
- Az SSLCipherSuite csak HIGH és MEDIUM kódokat állít be. Az SHA1 biztonságosabbnak tekinthető, mint az MD5, így kiválasztva.
- Az SSLCertificateFile és az SSLCertificateKeyFile adja meg a tanúsítvány és a kulcsfájlok helyét.
- Az SSLVerifyClient beállítása "none" értékre van állítva, ha nem használja a minta hitelesítését.

A 80-as porton a normál kiszolgáló futtatásához adja hozzá a következő szöveget a konfigurációs fájlhoz:

A szerkesztett konfigurációs fájl mentése után indítsa újra a kiszolgálót. Ha tanúsítvány létrehozásakor jelszót használt, akkor a kéréskor be kell írnia.

Hozzon létre egy alaplap index.html fájlt a kiszolgáló gyökérkönyvtárában, ha még nincs ott ott a tartalom.

Ha ez nem a várakozásoknak megfelelően működik, először ellenőrizze, hogy a kiszolgáló általában elindult-e a ps -a | parancs használatával grep apache. Ha nem jelenik meg az eredmény, próbálja meg újraindítani a kiszolgálót, és ellenőrizni a konzolon lévő hibaüzeneteket.

Ezenkívül ellenőrizze, hogy a tanúsítványhoz és a kulcsfájlhoz való hozzáférési jogok megfelelően vannak-e beállítva (lásd fent), valamint a tesztelt HTML-fájlhoz és a könyvtárhoz való jogot.

Ezután ellenőrizze a naplókat. Ellenőrizze mind a szerver naplóit, mind az SSL naplóit, amelyeket a fenti konfigurációs fájlban konfiguráltak. Ha semmi hasznosat nem találtál, próbáld meg az Apache2 konfigurációs fájljában lévő LogLevel értéket "debug" -ra változtatni, újraindítani az Apache2-t és újra tesztelni. Ennek több adatot kell adnia a naplókban.

Ha a probléma SSL kapcsolat, az s_client a kényelmes eszköz, amely egy diagnosztikai segédprogram a TLS / SSL kapcsolatok problémáinak megoldásához. A szokásos használat: / usr / bin / openssl s_client -connect localhost: 443. A dokumentációból számos más lehetőség is van. Ha hibaüzenetet kap, ez segít a probléma meghatározásában.

Gratulálunk! Most van egy működő biztonságos szerver, amely tanúsítvánnyal rendelkezik, amelyet a legmodernebb böngészők automatikusan ellenőrzik.