Az Apache beállítása SSL használatával
Az alábbi utasítások feltételezik, hogy mindkét biztonságos kiszolgálót futtatni szeretné (a porton) 443
) és egy szokásos szerver (a porton 80
). Először be kell állítania a szervert, hogy mindkét porton hallgassa. Vagy szerkesztés /etc/apache2/ports.conf
(a Debianban; ez benne van a apache2.conf
) vagy szerkeszteni /etc/apache2/apache2.conf
közvetlenül a sorok beillesztésére:
Figyelj 80 Figyelj 443
Ezután módosítsa /etc/apache2/sites-enabled/yoursite
az SSL-beállítások használatához. A rendszeres és biztonságos szerverbeállítások elválasztása a VirtualHosts segítségével a legkönnyebb megoldás a karbantarthatóság szempontjából. A VirtualHosts szakaszokon kívüli konfigurációk (például a ServerAdmin beállítása) mindkét (és minden más) VirtualHost-ra vonatkoznak.
Az Apache 2.4.8 és újabb verziói azt várják, hogy a kiszolgálói tanúsítvány összefűzve legyen egy köztes tanúsítvánnyal egy fájlban. Ha láncolt fájlt szeretne letölteni az SSL.com oldaláról, válassza a Nginx
letöltési link a portál fiókjában:
Alternatív megoldásként összefűzheti a meglévő tanúsítványt és a köztes fájlokat a következő paranccsal:
$ cat /etc/ssl/private/ca-bundle-client.crt >> /etc/ssl/private/yourdomain.crt
Adja hozzá a következő szakaszt a konfigurációs fájlhoz:
# =================================================== # SSL /TLS beállítások # ================================================== = NameVirtualHost *: 443 DocumentRoot "/ var / www / yoursite" SSLEngine on SSLCertificateFile /etc/ssl/private/yourdomain.chained.crt SSLCertificateKeyFile /etc/ssl/private/myserver.key
Néhány megjegyzés erről a konfigurációról:
SSLEngine
engedélyezni kell, hogy a szerver SSL-t használjon.DocumentRoot
beállítja ennek a virtuális gazdagépnek a gyökérkönyvtárát. Ez azt jelenti, hogy a biztonságos tartalmat teljesen el lehet különíteni a normál tartalomtól.SSLCertificateFile
azt a helyet kell beállítani, ahová a kiszolgálói tanúsítvánnyal és a köztes lánccal együtt feltöltötte a fájlt.SSLCertificateKeyFile
arra a helyre kell beállítani, ahová a privát kulcsfájlt feltette.
Adja hozzá a következő szakaszt a konfigurációs fájlhoz:
# =================================================== # SSL /TLS beállítások # ================================================== = NameVirtualHost *: 443 DocumentRoot "/ var / www / yoursite" SSLEngine on SSLCertificateFile /etc/ssl/private/yourdomain.crt SSLCertificateKeyFile /etc/ssl/private/myserver.key SSLCertificateChainFile / etc / sslle / private / ca client.crt
Néhány megjegyzés erről a konfigurációról:
SSLEngine
engedélyezni kell, hogy a szerver SSL-t használjon.DocumentRoot
beállítja ennek a virtuális gazdagépnek a gyökérkönyvtárát. Ez azt jelenti, hogy a biztonságos tartalmat teljesen el lehet különíteni a normál tartalomtól.SSLCertificateFile, SSLCertificateChainFile,
és aSSLCertificateKeyFile
azt a helyet kell beállítani, ahová a tanúsítványt, a köztes és a magánkulcs fájlokat helyezi.
A szokásos kiszolgáló futtatásához a 80-as porton adja hozzá a következő részt a konfigurációs fájlhoz:
NameVirtualHost *: 80 DocumentRoot "/ var / www / yoursite" # Gépspecifikus könyvtárbeállítások, opciók stb. # Ezen opciók nagy része valószínűleg a VirtualHosts # szakaszokon kívül lesz beállítva.
A szerkesztett konfigurációs fájl mentése után indítsa újra a webszervert. Ha valóban használt egy jelszót a tanúsítvány létrehozásakor, akkor azt meg kell adnia, amikor megtámadta.
Tesztelés
Hozzon létre egy alap index.html oldalt bárhol, ahol a webkiszolgáló gyökérkönyvtára található, ha még nincs benne tartalma.
Ezután mutasson a böngészőre https://www.yoursite.com
. Látnia kell egy SSL-kapcsolatot és az oldalt kézbesíteni. Ha önaláírt tanúsítványt használ, a böngésző felugrik egy figyelmeztetés, amely figyelmezteti Önt, hogy a szerver identitását nem lehet ellenőrizni. Választhatja a tanúsítvány megtekintését és elfogadását. Ha külső tanúsítványt használ, mindennek beavatkozás nélkül kell történnie.
Győződjön meg arról is, hogy a http: // használatával nem férhet hozzá a védett tartalomhoz. Ha megpróbálja, hibaüzenetet kell kapnia.
Hibaelhárítás
Ha nem a várt módon működik, először ellenőrizze, hogy a szerver valóban működik-e ps -a | grep apache
. Ha ez nem eredményez semmit, próbálkozzon újraindítással, és ellenőrizze, hogy nincsenek-e hibaüzenetek a terminálon.
Ellenőrizze továbbá, hogy a kulcs- és tanúsítványfájlok engedélyei megfelelően vannak-e beállítva (lásd fent), valamint a teszt HTML-fájljának és annak szülőkönyvtárának engedélyeit.
Ezután ellenőrizze a naplókat. Ellenőrizze mind a fő kiszolgáló naplóit, mind az SSL naplókat, amelyeket a fenti konfigurációs fájlban állított be. Ha nem kap semmi hasznosat, próbálja meg megváltoztatni az Apache2 konfigurációs fájlban a LogLevel értéket „debug” -ra, indítsa újra az Apache2-t és tesztelje újra. Ennek több naplófájl adatot kell adnia.
Ha normál webkiszolgálót is futtat a 80-as porton, próbálja meg letölteni a tesztoldalt a http: // helyett a https: // helyett, hogy azonosítsa, a probléma a webkiszolgálóval vagy az SSL-kapcsolattal van-e. Ne feledje, hogy a fenti beállításban a webkiszolgáló gyökérkönyvtára eltér a http: // és a https: // fájloktól, ezért nem (vagy nem kellene!) Hozzáférnie ugyanahhoz a tartalomhoz. Ha a tesztoldala a http: // gyökérkönyvtárban jól működik, és a tesztoldal a https: // gyökérkönyvtárban nem, akkor ez segíthet a probléma pontos meghatározásában.
Ha a probléma az SSL-kapcsolat, akkor hasznos eszköz s_client
, amely diagnosztikai eszköz a hibaelhárításhoz TLS/ SSL kapcsolatok. Az alaphasználat: /usr/bin/openssl s_client -connect localhost:443
. Számos egyéb lehetőség is rendelkezésre áll, amelyekhez ellenőrizheti a dokumentációt. Ha hibaüzeneteket kap, ez segíthet a probléma megtalálásában.