Post_Detail

Apache: skonfiguruj szyfrowanie i aplikacje internetowe

Serwer

Apache: skonfiguruj szyfrowanie i aplikacje internetowe

Tworzenie witryny zaszyfrowanej SSL nie jest nauką rakietową, ale jest o wiele bardziej skomplikowane, niż mogłoby się wydawać początkującym. Ci, którzy nie mają z tym doświadczenia, zwykle wiedzą tylko, że z punktu widzenia klienta stosunkowo łatwo jest wpisać adres URL w przeglądarce z https:// zamiast http:// na początku.

ZDNet wykorzystuje przykład Debiana i powiązanych dystrybucji, takich jak Ubuntu i Linux Mint, aby pokazać, jak skonfigurować szyfrowanie SSL w Apache. Należy zauważyć, że struktura plików konfiguracyjnych Apache różni się zasadniczo w innych dystrybucjach, takich jak Red Hat czy Suse. Dlatego te instrukcje mają ograniczone zastosowanie tylko w przypadku dystrybucji Linuksa, które nie są oparte na Debianie.

Wymagane jest jednak trochę doświadczenia. Dla początkujących, którzy nigdy nie zakładali strony internetowej z Apache, zaleca się samouczek ZDNet "Hosting na serwerze głównym: tak konfigurujesz Apache".

Um zu verstehen, wie eine SSL-Website grorazsätzlich funktioniert, kommt man nicht ganz ohne Theoriewissen aus. SSL, das offiziell heute TLS heißt, bietet nicht nur eine einfache Verschlüsselung, sondern stellt auch über ein Zertifikat sicher, dass der Benutzer Man-in-the-Middle-Attacken erkennen kann.

Bez SSL bez certyfikatu

Taki certyfikat musi być zainstalowany na serwerze WWW dla każdej strony SSL. Taki certyfikat możesz łatwo wyprodukować samodzielnie. Jednak wszystkie popularne przeglądarki ostrzegają, jeśli mają certyfikat, który nie pochodzi od uznanej firmy certyfikującej. Możesz zignorować to ostrzeżenie i jednocześnie określić, że od teraz certyfikat powinien być zawsze akceptowany.

Każdy, kto prowadzi publiczną witrynę internetową, będzie musiał zmagać się z problemami z akceptacją, jeśli niedoświadczonych użytkowników irytują ostrzeżenia dotyczące bezpieczeństwa. Dlatego lepiej jest uzyskać certyfikat od uznanego wystawcy, który bezbłędnie zaakceptują wszystkie przeglądarki. Do testowania i wypróbowania wystarczy samodzielnie utworzony certyfikat.

Certyfikaty są zazwyczaj odpłatne i są wydawane tylko dla niektórych stron internetowych. Jeśli zostanie wydany w witrynie www.example.com, spowoduje wyświetlenie komunikatu o błędzie w witrynie www.example.net. Można temu zaradzić za pomocą tak zwanego certyfikatu wieloznacznego, który jest droższy niż certyfikat tylko dla jednej witryny.

Na przykład certyfikat wieloznaczny jest wystawiany dla domeny * .example.com. Przeglądarki akceptują taki certyfikat np. dla www1.example.com i www2.example.com. Jednak często nie osiąga się pożądanego rezultatu: każdy, kto prowadzi witrynę www.example.com, zwykle chce, aby była ona dostępna w example.com. Jednak domena example.com nie jest uwzględniona w symbolu wieloznacznym. Jeśli chcesz objąć wszystkie nazwy DNS, zawsze potrzebujesz dwóch certyfikatów — jednego dla example.com i jednego dla * .example.com.

Certyfikaty wydawane są również osobie lub organizacji (np. firmie). Ma to na celu zapewnienie, że strona internetowa banku jest faktycznie obsługiwana przez ten bank. Istnieją jednak różne klasy. Certyfikaty klasy 1 wydawane są wyłącznie osobom fizycznym. W rzeczywistości nie ma w tym celu kontroli tożsamości. Wystarczy, że karta kredytowa została pomyślnie obciążona.

Besonders sicher bezüglich der Authentifizierung des Besitzers sind EV-Zertifikate (Extended Validation). Sie werden nur nach einer rigorosen Identitätsprüfung, etwa Meldebescheinigung oder Handelsregisterauszug oraz Nachweis der Vertretungsbefugnis ausgegeben. Sie sind entsprechend teuer oraz der bürokratische Aufwand für ihre Beschaffung ist hoch.

W praktyce wykazano, że odwiedzający witrynę zazwyczaj niewiele wiedzą o certyfikatach. Jeśli przeglądarka nie zgłosi błędu, użytkownicy kontynuują. Dlatego zwykle wystarcza certyfikat klasy 1. Większość dostawców pobiera za to od 10 do 30 euro. Firma StartSSL oferuje je nawet bezpłatnie. Certyfikaty StartSSL są akceptowane przez wszystkie popularne przeglądarki.

Tylko jedna witryna SSL na adres IP

Chociaż możesz obsługiwać dowolną liczbę niezaszyfrowanych witryn na serwerze z tylko jednym adresem IP, jest to możliwe tylko w ograniczonym zakresie w przypadku witryn SSL. W praktyce zwykle obejdziesz się bez niego.

SSL lub TLS to mechanizm tunelowania, który można zasadniczo zastosować do dowolnego protokołu opartego na TCP. Ponieważ dla każdej witryny mogą istnieć różne parametry, takie jak dozwolone algorytmy szyfrowania i siła, tunel SSL może wymagać renegocjacji w istniejącej sesji. Nie dotyczy to starych implementacji SSL.

W praktyce oznacza to, że użytkownicy z Windows XP i Internet Explorerem (niezależnie od wersji) nie mogą korzystać z nowego protokołu. Windows oferuje SSL jako usługę jądra używaną przez Internet Explorer. Renegocjacja SSL jest zaimplementowana tylko w systemie Windows Vista i nowszych.

Wszystkie inne przeglądarki same implementują SSL, więc każdy, kto używa w miarę aktualnej wersji Firefoksa, Chrome, Safari czy Opery, nie będzie miał problemów z renegocjacją SSL, niezależnie od systemu operacyjnego.

Ponieważ jednak wielu użytkowników nadal korzysta z systemu Windows XP i przeglądarki Internet Explorer, nie możemy zalecać operatorom witryn publicznych obsługi wielu witryn SSL na jednym adresie IP. Lepiej poprosić hosta o dodatkowe adresy IP, co może wiązać się z kosztami.

Niepopularną konstrukcją pomocniczą jest obsługa stron SSL nie tylko na standardowym porcie 443, ale także na innych portach, np. 8443. Strona internetowa działająca na tym porcie miałaby wtedy adres URL w postaci https: // www .example.com : 8443, co jest przeważnie niepożądane.

Konfiguracja strony internetowej SSL w praktyce

Najpierw sprawdź plik /etc/apache2/ports.conf. Dostosowany do komentarzy, powinien wyglądać tak:

Apache może implementować połączenia SSL za pomocą GnuTLS lub OpenSSL. Ogólnie zaleca się OpenSSL, ponieważ ma więcej funkcji. Następnie należy aktywować moduł SSL. To działa z sekwencją poleceń

a2enmod ssl apache2ctl configtest apache2ctl pełen wdzięku

Jeśli nie jesteś zalogowany jako root, musisz poprzedzić każde polecenie słowem sudo lub uzyskać prawa roota raz sudo -s. Polecenie apache2ctl configtest jest opcjonalne i umożliwia sprawdzenie całej konfiguracji pod kątem błędów składniowych. Powinien być używany rutynowo przed aktywacją nowej konfiguracji z wdziękiem apache2ctl. Jeśli zgłosi błąd, zmienione pliki konfiguracyjne muszą zostać ponownie sprawdzone.

Serwer Apache jest teraz w zasadzie gotowy do obsługi połączeń SSL. Następnie należy skonfigurować witrynę SSL. Jeśli masz już niezaszyfrowaną stronę internetową i chciałbyś ją oferować przez SSL, musisz skopiować plik konfiguracyjny, na przykład /etc/apache2/sites-available/default i coś zmienić. Zalecana nazwa to /etc/apache2/sites-available/default-ssl.

Załóżmy na przykład, że plik /etc/apache2/sites-available/default wygląda tak:

Aby oferować tę samą stronę z szyfrowaniem SSL, utwórz następujący plik /etc/apache2/sites-available/default-ssl:

Instrukcje są noweorazw pierwszym i ostatnim wierszu. Zapewniają, że strona internetowa uruchomi się tylko wtedy, gdy moduł Apache SSL zostanie poprawnie załadowany. To-Oświadczenie zostało zmienione, aby odpowiadać na port HTTPS 443.

Polecenia z SSLEngine dotyczą SSL i certyfikatów. Aby protokół SSL działał w zasadzie, przynajmniej certyfikat i powiązany klucz prywatny muszą być określone w instrukcjach SSLCertificateFile i SSLCertificateKeyFile. Certyfikat demonstracyjny /etc/ssl/certs/ssl-cert-snakeoil.pem i powiązany z nim klucz /etc/ssl/private/ssl-cert-snakeoil.key są preinstalowane w każdej dystrybucji Debiana, więc możesz od razu użyć SSL może uruchomić .

Oświadczenia SSLCertificateChainFile i SSLCACertificateFile są wykomentowane. Zazwyczaj potrzebujesz go, gdy otrzymujesz certyfikat od uznanej firmy. Możesz dowiedzieć się od wystawcy, czy i które z dwóch oświadczeń są wymagane. Na przykład, jeśli otrzymasz darmowy certyfikat klasy 1 od StartSSL, z instrukcji dowiesz się, które pliki należy wprowadzić iw jaki sposób. Zaraz po zainstalowaniu oficjalnego certyfikatu należy upewnić się, że plik klucza za instrukcją SSLCertificateKeyFile jest zawsze utrzymywany w tajemnicy. Gdy tylko dostanie się w niepowołane ręce, certyfikat musi zostać zgłoszony wystawcy jako skradziony.

W końcu nie da się uniknąć rozwiązywania problemów z Internet Explorerem Microsoftu. Instrukcje dopasowania przeglądarki zapewniają, że Internet Explorer może obsługiwać witryny Apache SSL.

Po utworzeniu pliku konfiguracyjnego aktywuj nową witrynę SSL i ponownie załaduj konfigurację Apache za pomocą poleceń

a2ensite default-ssl apache2ctl configtest apache2ctl pełen wdzięku

Poniższy obrazek powinien pojawić się w przeglądarce po pierwszym wywołaniu strony i skorzystaniu z certyfikatu demo.

Aby zobaczyć stronę, zignoruj ​​ostrzeżenie i jedź. Ostrzeżenie różni się w zależności od używanej przeglądarki (tutaj Google Chrome). Niektóre programy antywirusowe również wyświetlają dodatkowe ostrzeżenie, ale najczęściej tylko wtedy, gdy korzystasz z przeglądarki Internet Explorer.

W przedstawionej konfiguracji użytkownik ma możliwość wyboru korzystania ze strony internetowej z szyfrowaniem lub bez. Jeśli chcesz zmusić wszystkich użytkowników do korzystania z połączenia SSL, możesz to zrobić automatycznie przekierowując niezaszyfrowaną stronę na zaszyfrowaną. Aby to zrobić, użyj następującej konfiguracji dla /etc/apache2/sites-available/default.

Użytkownik, który wprowadzi tylko apache1.ZDNetLabs.Darktech.org/dir1/file2.htm w swojej przeglądarce (bez określenia protokołu takiego jak http: //) zostanie automatycznie przekierowany do https://apache1.ZDNetLabs.Darktech.org/dir1 /plik2.htm przekierowany.