Tanúsítvány létrehozása Apache szerverhez SNI korlátozás: az előző probléma feloldására...

Preview:

Citation preview

1(15)

Tanúsítvány létrehozása Apache szerverhez

Apache és Tomcat szerveren kérelem létrehozása, tanúsítvány kérelem

beadása, kiadott tanúsítvány telepítése, tanúsítvány megújítása

OnlineSSL rendszeren keresztül

2(15)

1. Tartalomjegyzék

1. Tartalomjegyzék ........................................................................................................... 2

2. Bevezető ........................................................................................................................ 3

3. Korlátozások ................................................................................................................. 3

4. Előzetes követelmények – OpenSSL telepítése ....................................................... 3

4.1. OpenSSL telepítés Linux operációs rendszerre ....................................................... 3

4.2. OpenSSL telepítés Windows operációs rendszerre ................................................. 3

4.2.1. OpenSSL használata Windows alól ........................................................................... 4

5. Előzetes követelmények – néhány döntés, amit meg kell hozni ........................... 4

5.1. A tanúsítvány kiadás algoritmusa, a kiadó típusa ..................................................... 4

5.2. Az SSL tanúsítvány profilja......................................................................................... 5

6. Tanúsítvány kérelem létrehozása a szerveren .......................................................... 6

6.1. Példa a kulcsgenerálásra és a kérelem létrehozására................................................ 8

7. Tanúsítvány kérelem beadása ..................................................................................... 9

8. Domain ellenőrzés és kiadás ..................................................................................... 10

9. Kiadott tanúsítvány telepítése .................................................................................. 10

9.1. Példa a konfigurációs állományra ............................................................................. 10

10. OCSP Stapling ............................................................................................................ 12

10.1. Mi az OCSP Stapling? ............................................................................................... 12

10.1.1. Kapcsolat felépülése OCSP Stapling nélkül ........................................................... 12

10.1.2. Kapcsolat felépülése OCSP Stapling segítségével ................................................. 12

10.2. Előzetes követelmények 1 – A tűzfalakon szükséges engedélyezés ................... 12

10.3. Előzetes követelmények 2 – A gyökértanúsítványok beszerzése ........................ 13

10.3.1. SHA 256 kiadók ......................................................................................................... 13

10.3.2. SHA 1 kiadók .............................................................................................................. 13

10.3.3. Összes kiadó ............................................................................................................... 13

10.4. Az Apache 2.3 és későbbi szerver verziók beállítása ............................................ 14

11. Apache Tomcat beállítása ......................................................................................... 15

3(15)

2. Bevezető

E tájékoztató célja, hogy a szerveréhez létrehozandó SSL tanúsítvány igénylését minél könnyebben elvégezhesse.

Kérjük, olvassa el figyelmesen és kövesse a leírtakat.

Amennyiben bármilyen kérdése vagy problémája van, Ügyfélszolgálatunk az (40) 22-55-22 telefonszámon, az info@netlock.hu e-mail címen vagy személyesen a 1101 Budapest, Expo tér 5-7. szám alatt munkanapokon 9 és 17 óra között készséggel áll rendelkezésére.

3. Korlátozások

1. A wildcard (*) jelet tartalmazó tanúsítványok esetén a szabvány szerint a * jel egy domain név komponensnek kell, hogy megfeleljen.

Ez példánkon keresztül azt jelenti, hogy a *.valami.hu tanúsítvány megfelel az alma.valami.hu vagy barack.valami.hu domain névhez, de nem megfelelő a jonatan.alma.valami.hu és valami.hu domain nevekhez.

Az Internet Explorer ezt a szabványt maradéktalanul betartja.

2. Https protokoll korlátozás: a https protokoll titkosítatlanul csak az IP címet viszi át, ebből következően egy szerveren, egy IP cím esetén, csak egy tanúsítvány kerülhet elhelyezésre. Több site esetén megoldás lehet a többszörös CN/SAN, illetve a wildcard tanúsítvány.

3. Az SNI korlátozás: az előző probléma feloldására született az SNI technológia, amely azonban csak Windows Vista és Internet Explorer 7+ esetében érhető el, így haszna megkérdőjelezhető.

4. Előzetes követelmények – OpenSSL telepítése

Az OpenSSL-lel történő generáláshoz szükség lehet az OpenSSL telepítésére.

4.1. OpenSSL telepítés Linux operációs rendszerre

A gépen, ahol a kérelmet létrehozzák, szükség van az OpenSSL csomag telepítésére. Ezt telepítsük a disztribúciós csomag kezelőjével.

4.2. OpenSSL telepítés Windows operációs rendszerre

Az OpenSSL Windowson való futtatásához a következő alkalmazások telepítésére lesz szükség:

- OpenSSL win32 disztribúció

http://www.slproweb.com/products/Win32OpenSSL.html

- Microsoft Visual C++ 2008 Redistributable Package

http://www.microsoft.com/downloads/details.aspx?familyid=9B2DA534-3E03-4391-8A4D-074B9F2BC1BF&displaylang=en

4(15)

4.2.1. OpenSSL használata Windows alól

Az OpenSSL-t Windows esetén parancsról tudja használni. Ennek elérései:

1. A Start menü> Futtatás mezőbe írja be: cmd

2. Ezután a parancsokat a C:\OpenSSL\bin könyvtárban kell kiadni.

A parancssorban a következő parancsokat kell megadni:

C:

cd openssl\bin

5. Előzetes követelmények – néhány döntés, amit meg kell hozni

A tanúsítvány igénylése előtt érdemes pár dolgot megfontolni, és annak alapján választani majd a kérelem feltöltése során.

5.1. A tanúsítvány kiadás algoritmusa, a kiadó típusa

A kiadás során használt hash algoritmus meghatározza, hogy mely kiadóval kerül majd kiadásra a tanúsítvány, illetve hogy milyen kompatibilitási és egyéb problémák fordulhatnak elő.

SHA1 kiadóktól származó tanúsítvány

SHA1 kiadótól származó SHA1 algoritmust tartalmazó tanúsítvány

o a legtöbb eszköz, szoftver támogatja

o támogatása az iparági szabványoktól és egyéb szabályozásoktól függően hamarosan megszűnik

SHA-256 kiadók

SHA256 kiadótól származó SHA256 algoritmust tartalmazó tanúsítvány

o a használatához minimum Windows XP SP3 vagy Vista SP1 szükséges

o hosszú távon használhatók

o régebbi telefonos operációs rendszereken az ilyen tanúsítványok támogatás és frissítés hiányában nem használhatók.

Figyelem!

Az 2014-07-01-től az onlinessl.netlock.hu oldalon csak SHA256 algoritmusú tanúsítványok vásárolhatók.

5(15)

5.2. Az SSL tanúsítvány profilja

A kiadás során használt tanúsítványprofil határozza meg, hogy mire is lesz alkalmas a tanúsítvány.

Szerver tanúsítvány

Egyszerű, 1 domain nevet tartalmazó tanúsítvány, melynek a CN mezőjében a domain név található. Olyan esetekben javasolt, ahol 1 darab domain nevet kell hitelesíteni.

o csak egy teljes domain név hitelesítésére alkalmas, így a www.valami.hu címre szóló tanúsítvány csak a www.valami.hu cím eléréséhez jó, azonban a valami.hu cím eléréséhez NEM alkalmas;

o általában olyan egyszerű struktúrájú weboldalhoz javasolt, amely 1 címen érhető el.

Wildcard tanúsítvány

Olyan tanúsítvány, amely 1 domain nevet tartalmaz úgy, hogy a bal oldali tag helyén „*” szimbólum található.

o a *.valami.hu címre szóló tanúsítvány több aldomain hitelesítésére is alkalmas (például: www.valami.hu, mail.valami.hu, stb.). Mivel azonban a „*” szimbólumnak kötelezően helyettesítenie kell egy tagot, így NEM alkalmas a valami.hu cím elérésére;

o a „*” szimbólum a domainben csak bal oldalon szerepelhet;

o a régebbi telefonok (WM5, WM6, és egyéb régebbi telefonos operációs rendszerek) a Wildcard tanúsítványokat nem támogatják

o általában az UCC tanúsítvány javasolt helyette, mely tartalmazhat wildcard tagokat is;

UCC tanúsítvány

Olyan tanúsítvány, amely több domain nevet is tartalmazhat, akár wildcard taggal is kombinálva.

o a több domain név lehetővé teszi, hogy domain nevek széles kombinációját használhassuk egy szerveren;

o a valami.hu és *.valami.hu neveket tartalmazó tanúsítvány lehetővé teszi, hogy oldalunkat elérjük a valami.hu, valamint a www.valami.hu, web.valami.hu, mail.valami.hu, stb. címeken;

o a valami.hu, *.valami.hu, valami.eu, *.valami.eu neveket tartalmazó tanúsítvány lehetővé teszi, hogy oldalunkat elérjük a .hu és .eu tartományon keresztül az előző példának megfelelő variációkban is;

o a valami.hu és akarmi.hu neveket tartalmazó tanúsítvány lehetővé teszi, hogy oldalunkat egyaránt elérjük a valami.hu vagy az akarmi.hu néven is;

o A fenti példák kombinációi alapján több különböző domain név, több TLD (pl.: .hu, .eu) vagy al- és fődomain egyidejű használata esetén javasolt.

6(15)

Figyelem!

Az onlinessl.netlock.hu oldalon domain ellenőrzött (DV) tanúsítványok vásárolhatók, Wildcard vagy UCC tanúsítványok esetén a hagyományos tanúsítvány kiadást kell igénybe vennie.

6. Tanúsítvány kérelem létrehozása a szerveren

A kérelem létrehozásának lépései a következők:

1. Indítson parancssort (Windows), vagy terminál ablakot (Linux), majd adja ki következő parancsot:

openssl req -newkey rsa:2048 -keyout domainnev.key -out domainnev.csr

Ha JELSZÓVAL NEM AKARJA védeni a kulcsot, akkor a következő parancsot adja ki. (Jól jöhet, automatikusan induló szerverekhez, azonban biztonsági problémát okozhat.)

openssl req –newkey rsa:2048 -nodes -keyout domainnev.key -out

domainnev.csr

2. Ez a parancs létrehoz két fájlt, az egyik a privát kulcs (.key), a másik a tanúsítvány kérelem (.csr), amit a tanúsítvány kiállításhoz fog tudni használni.

3. Miután elindította a parancsot, a tanúsítvány kérelem számára ki kell töltenie néhány adatot.

Fontos!

A kitöltésnél ne használjon ékezetes betűket, valamint semmiféleképp ne töltse ki az esetleg felajánlott e-mail mezőt, mert SSL tanúsítványban e-mail cím nem szerepelhet.

Ha valamit az openssl kitöltve ajánl fel (szögletes zárójel közötti rész), akkor azt Enter gombbal elfogadhatjuk. Pont megadásával a mező alapértelmezett tartalma törlésre kerül.

UCC tanúsítvány esetén a kérelem beadását követően érdemes felénk is jelezni (a domain név megadásával), hogy az adott kérelem során milyen domain neveket szeretne még a tanúsítványban látni, hogy azokat szükség esetén pótolhassuk.

7(15)

A tanúsítvány-kérelem kitöltendő mezői:

Common name (CN) Domain név teljes formájában. (https:// nélkül) Pl: www.akarmi.hu, mail.akarmi.hu

Country code (C)

Locality (L)

State (ST)

Organization (O)

Organization Unit (OU)

Az Email cím ne legyen kitöltve, az extra attribútumok kitöltése felesleges.

A létrejövő fájlok közül a kulcsot (.key) tegye majd az Apache megfelelő könyvtárába, a létrejövő kérelmet (.csr) kell majd a Netlock rendszerbe feltöltenie.

8(15)

6.1. Példa a kulcsgenerálásra és a kérelem létrehozására

Jelszavas kulcsgenerálás és kérelem létrehozás adatmegadást megelőző lépései

(kétszer kell megadni a jelszót, amit meg kell jegyeznünk).

Jelszó nélküli teljes kulcsgenerálás

9(15)

7. Tanúsítvány kérelem beadása

Az imént létrehozott kérelem beadását az onlinessl.netlock.hu oldalon a Megrendeléseim menüpont alatt, a kérelem feltöltésnél tudja beadni (CSR feltöltés menüpont).

A kérelmet az itt található mezőbe kell beillesztenie a vágólapról.

10(15)

8. Domain ellenőrzés és kiadás

Az onlineSSL oldalon igényelt tanúsítványoknál a domain ellenőrző kódot kétszer vizsgálja a rendszer:

1. Amikor a folyamatban egyébként is ez a lépés következik.

2. Közvetlenül a tanúsítvány kiadása előtt.

Amennyiben a tanúsítvány kiadása nem sikerül, úgy érdemes ellenőrizni, hogy a domaincheck.html a megfelelő tartalommal elérhető-e még a szerveren. Ha elérhető, a tanúsítvány az összes többi lépés OK állapota esetén kiadásra kerül.

9. Kiadott tanúsítvány telepítése

A tanúsítvány a kiadása után letölthetővé válik. Ezt töltse le, majd másolja fel szerverére (az Apache megfelelő könyvtárába), majd konfigurálja be a szervert.

SHA256 kiadók és az onlinessl.netlock.hu oldalról igényelt tanúsítvány esetében azonban szükséges beállítani az SSLCertificateChainFile opciót is.

Ehhez le kell töltenie a következő kiadói tanúsítványok egyikét az alábbi címekről:

Közjegyzői (SHA256) www.netlock.hu/index.cgi?ca=caca

Üzleti (SHA256) www.netlock.hu/index.cgi?ca=cbca

Expressz (SHA256) www.netlock.hu/index.cgi?ca=ccca

OnlineSSL (SHA256) www.netlock.hu/index.cgi?ca=olsslgca

9.1. Példa a konfigurációs állományra

A következő példa konfigurációs állomány SSL és nem SSL kapcsolattal működő szerver konfigurálását mutatja be:

# Az SSL kikapcsolása általánosan

SSLDisable

# Kapcsolat fogadása 80 (http) és 443 (https) portokon

Listen 80

Listen 443

# alapértelmezett konfiguráció

SSLLogFile /utvonal/SSL_log

SSLCertificateFile /utvonal/tanusitvany.pem

SSLCertificateKeyFile /utvonal/kulcs.pem

#A CACHAIN file megadasa akkor szukseges, ha a kiadott tanusitvany koztes

#kiadotol szarmazik

#SSLCertificateChainFile /utvonal/onlinesslCA.pem

#SSLCertificateChainFile /utvonal/cbca.cer

#SSLCertificateChainFile /utvonal/ccca.cer

11(15)

#kliens ellenőrzés opciók

#nincs tanúsítványos kliens ellenőrzés opció,

#tanusítványlánc ellenőrzése 10 szintig

#(értelemszerűen ha kikapcsolva, akkor nincs

SSLVerifyClient 0

SSLVerifyDepth 10

#klienstől elfogadott kódolások

#(itt minden, kivéve NULL, ennél kevesebb javasolt)

#Ban = tiltva

#FIGYELEM!!! EZ EGY MINTA SZAKASZ, A SAJAT SZERVER BEALLITAS MEGTARTASA

#A KODOLASOK ESETEBEN JAVASOLT LEHET!!!

SSLRequiredCiphers NULL-MD5:RC4-MD5:EXP-RC4-MD5:RC2-CBC-MD5:IDEA-CBC-

MD5:DES-CBC-MD5:DES-CBC-SHA:DES-CBC3-MD5:DES-CBC3-SHA:DES-CFB-M1

SSLRequireCipher NULL-MD5 RC4-MD5 EXP-RC4-MD5 RC2-CBC-MD5 IDEA-CBC-MD5 DES-

CBC-MD5 DES-CBC-SHA DES-CBC3-MD5 DES-CBC3-SHA DES-CFB-M1

SSLBanCipher NULL

#logolás helye

SSLLogFile utvonal/ssl_log

#most jön az SSL védett szerver

<VirtualHost www.akarmi.hu:443>

SSLEnable

DocumentRoot /utvonal/

ScriptAlias /cgi-bin/ /utvonal/

TransferLog utvonal/fajl

ErrorLog utvonal/fajl

</VirtualHost>

# itt következik a nem SSL védett site (SSLDisable kikapcsolja a site-ra)

<VirtualHost www.akarmi.hu:80>

SSLDisable

DocumentRoot /utvonal/

ScriptAlias /cgi-bin/ /utvonal/

ErrorLog utvonal/fajl

TransferLog utvonal/fajl

</VirtualHost>

12(15)

10. OCSP Stapling

10.1. Mi az OCSP Stapling?

Az OCSP Stapling előnye a Stapling nélküli és a Stapling használatával a működés bemutatásának különbségein keresztül érzékelhető.

10.1.1. Kapcsolat felépülése OCSP Stapling nélkül

A visszavonás ellenőrzés OCSP segítségével hagyományos esetben a következőképpen történik:

1. A kliens böngészője felveszi a kapcsolatot a webszerverrel.

2. A kliens böngészője a megkapott tanúsítványt lekérdezi a tanúsítványkiadó szerverétől, OCSP vagy CRL esetében.

3. Létrejön a kapcsolat.

Mint látható, minden kliens maga kommunikál a tanúsítványkiadóval, ami magas terhelés esetén a felhasználó számára hosszú válaszidőket eredményezhet a kliens oldalon.

10.1.2. Kapcsolat felépülése OCSP Stapling segítségével

Az OCSP Stapling kihasználja azt, hogy a kapcsolat kiépülésekor a már kiépített kapcsolaton keresztül akár a visszavonási információk lekérését is el lehet küldeni a kliens számára.

A visszavonás ellenőrzés OCSP segítségével hagyományos esetben a következőképpen történik:

Előkészítő lépés: A webszerver időnként letölti a tanúsítványához tartozó OCSP válaszokat, majd meghatározott időnként frissíti azt.

1. A kliens böngészője felveszi a kapcsolatot a webszerverrel.

2. A webszerver elküldi az OCSP választ a kliens részére.

3. Létrejön a kapcsolat.

Mint látható, a szerver gyakorlatilag „előre betárazza” az OCSP a választ, így a kapcsolat kiépülésének sebessége nem függ külső szervertől. Emiatt ajánlott az OCSP Stapling beállítása!

10.2. Előzetes követelmények 1 – A tűzfalakon szükséges engedélyezés

Ahhoz, hogy az OCSP Stapling használható legyen, a szervezet tűzfalain a szerver számára engedélyezni kell a következő címek elérését.

http://www.netlock.hu

http://ocsp1.netlock.hu

http://ocsp2.netlock.hu

http://ocsp3.netlock.hu

Javasolt a fenti esetek DNS alapú beállítása, mert a szolgáltatások felhőbe költözése esetén az IP címek változhatnak.

13(15)

10.3. Előzetes követelmények 2 – A gyökértanúsítványok beszerzése

Ahhoz, hogy az OCSP Stapling működjön, egyes szervereken szükséges a gyökértanúsítványok és a köztes tanúsítványok szerver számára elfogadható módon történő telepítése.

Az elfogadni kívánt tanúsítványok kiadója alapján a következő tanúsítványok letöltése szükséges. Mivel egyes böngészők ezt automatikusan megnyitják, a tanúsítvány letöltéséhez célszerű Internet Explorer-t használni.

Az egyes kiadók elérése a következő alfejezetben olvasható.

10.3.1. SHA 256 kiadók

Az SHA256 algoritmusú kiadók a következő URL-eken érhetők el.

Legfelső szintű kiadó:

Arany (SHA256) www.netlock.hu/index.cgi?ca=gold

Köztes szintű kiadó:

Közjegyzői (SHA256) www.netlock.hu/index.cgi?ca=caca

Üzleti (SHA256) www.netlock.hu/index.cgi?ca=cbca

Expressz (SHA256) www.netlock.hu/index.cgi?ca=ccca

OnlineSSL (SHA256) www.netlock.hu/index.cgi?ca=olsslgca

10.3.2. SHA 1 kiadók

Az SHA1 algoritmusú kiadók a következő URL-eken érhetők el.

Legfelső szintű kiadók:

Közjegyzői (SHA1) www.netlock.hu/index.cgi?ca=kozjegyzoi

10.3.3. Összes kiadó

Természetesen használható egy előre összeállított csomag is erre a célra, amely a következő címen érhető el (javasolt az netlock_osszes_ssl_kiado.pem fájl használata a csomagból): http://www.netlock.hu/docs/letoltes/ssl_kiadok_csomag.zip

14(15)

10.4. Az Apache 2.3 és későbbi szerver verziók beállítása

Az Apache 2.3 vagy későbbi verziójú webszerver esetén az Apache konfigurációs állományban a következőket kell megadni az OCSP Stapling bekapcsolásához:

1. A Szerveren ellenőrizzük, hogy az OpenSSL legalább 0.9.8h verziója legyen megtalálható, ha ez nem így van, akkor frissítsük azt. Az ellenőrzés elvégezhető a következő paranccsal.

openssl –version

2. A szerver modul betöltő részéhez (általában a httpd.conf fájlban található ez a szakasz) adjuk hozzá a következő szakaszt:

LoadModule socache_shmcb_module modules/mod_socache_shmcb.so

Ez a beállítás betölti a megfelelő modult. Ellenőrizzük, és szükség esetén telepítsük, ha ez nem található meg a szerverünkön.

3. A szerver SSL részt beállító szakaszához adjuk hozzá a következő bejegyzéseket:

#stapling bekapcsolása, cache es cache timeout beallitasa

SSLUseStapling On

SSLStaplingCache shmcb:/path/to/datafile[(512000)]

SSLStaplingStandardCacheTimeout 3600

SSLStaplingResponseMaxAge 3600

#a valaszado lekeres timeout beallitasa

SSLStaplingResponderTimeout 30

#hibas ocsp eseten a valasz timeoutja

SSLStaplingErrorCacheTimeout 600

#ha a szerver nem tud staplingolni, trylater-t küld a kliensnek

SSLStaplingReturnResponderErrors on

SSLStaplingFakeTryLater on

A „/path/to/datafile” értéket helyettesítsük be, javasolt lehet a következő:

/var/cache/mod_shmcb/stapcache

Az útvonal és a fájl legyen létrehozva, jogosultsága legyen a webszerver jogosultságával egyező.

A fentiek megadása és az Apache szerver újraindítása után az OCSP stapling- nak működnie kell.

15(15)

11. Apache Tomcat beállítása

Amennyiben a tanúsítványa PFX állományban (PKCS #12) található, akkor azt a Tomcat szerver közvetlenül is tudja használni.

A teendő a konnektor beállításaihoz a következő három sor hozzáfűzése:

keystoreType= "PKCS12 "

keystoreFile= "/utvonal/akarmi.pfx "

keystorePass= "akarmijelszo"/

Recommended