Zainstaluj certyfikat SSL na Apache Mod_SSL

Konfigurowanie Apache z SSL

Poniższe instrukcje zakładają, że chcesz uruchomić zarówno bezpieczny serwer (na porcie 443) i zwykły serwer (na porcie 80). Najpierw musisz skonfigurować serwer do nasłuchiwania na obu portach. Albo edytuj /etc/apache2/ports.conf (w Debianie; jest to zawarte w apache2.conf) lub edytuj /etc/apache2/apache2.conf bezpośrednio, aby uwzględnić linie:

Wyświetl listę 80 443

Następnie edytuj /etc/apache2/sites-enabled/yoursite aby użyć ustawień SSL. Rozdzielenie zwykłych i bezpiecznych ustawień serwera za pomocą VirtualHosts jest najłatwiejszą opcją pod względem łatwości konserwacji. Każda konfiguracja poza sekcjami VirtualHosts (np. Ustawienie ServerAdmin) będzie dotyczyła zarówno (jak i innych) VirtualHosts.

Uwaga: Począwszy od Apache 2.4.8 praktyka przechowywania certyfikatu serwera i pośredniego łańcucha certyfikatów w osobnych plikach jest przestarzała. Zarówno obecne, jak i starsze metody zostały szczegółowo opisane w zakładkach do kliknięcia poniżej.
Apache 2.4.8 lub nowszyApache 2.4.7 lub nowszy

Wersje Apache 2.4.8 i nowsze wersje oczekują, że certyfikat serwera będzie łączony z dowolnymi certyfikatami pośrednimi w jednym pliku. Aby pobrać plik z łańcuchem z SSL.com, wybierz Nginx link do pobrania na koncie portalu:

nginx

Alternatywnie możesz połączyć istniejące certyfikaty i pliki pośrednie za pomocą polecenia takiego jak poniżej:

$ cat /etc/ssl/private/ca-bundle-client.crt >> /etc/ssl/private/yourdomain.crt

Dodaj następującą sekcję do pliku konfiguracyjnego:

# =================================================== # SSL /TLS ustawienia # ================================================== = NameVirtualHost *: 443 DocumentRoot "/ var / www / yoursite" SSLEngine on SSLCertificateFile /etc/ssl/private/yourdomain.chained.crt SSLCertificateKeyFile /etc/ssl/private/myserver.key

Kilka uwag na temat tej konfiguracji:

  • SSLEngine należy włączyć, aby serwer używał protokołu SSL.
  • DocumentRoot ustawia katalog główny dla tego wirtualnego hosta. Oznacza to, że możesz całkowicie oddzielić bezpieczne treści od zwykłych treści.
  • SSLCertificateFile należy ustawić na lokalizację, w której umieścisz plik z certyfikatem serwera i łańcuchem pośrednim.
  • SSLCertificateKeyFile należy ustawić na lokalizację, w której umieścisz plik klucza prywatnego.

Dodaj następującą sekcję do pliku konfiguracyjnego:

# =================================================== # SSL /TLS ustawienia # ================================================== = NameVirtualHost *: 443 DocumentRoot "/ var / www / yoursite" SSLEngine on SSLCertificateFile /etc/ssl/private/yourdomain.crt SSLCertificateKeyFile /etc/ssl/private/myserver.key SSLCertificateChainFile / etc / ssl- private / ca client.crt

Kilka uwag na temat tej konfiguracji:

  • SSLEngine należy włączyć, aby serwer używał protokołu SSL.
  • DocumentRoot ustawia katalog główny dla tego wirtualnego hosta. Oznacza to, że możesz całkowicie oddzielić bezpieczne treści od zwykłych treści.
  • SSLCertificateFile, SSLCertificateChainFile, i SSLCertificateKeyFile należy ustawić odpowiednio w lokalizacjach, w których umieścisz pliki certyfikatu, pośredniego i prywatnego.

Aby uruchomić zwykły serwer na porcie 80, dodaj następującą sekcję do pliku konfiguracyjnego:

NameVirtualHost *: 80 DocumentRoot "/ var / www / yoursite" # Konfiguracja katalogu specyficzna dla hosta, opcje itp. # Większość tych opcji prawdopodobnie zostanie ustawiona poza sekcjami VirtualHosts #.

Po zapisaniu edytowanego pliku konfiguracyjnego zrestartuj serwer WWW. Jeśli użyłeś hasła podczas generowania certyfikatu, musisz je wprowadzić, gdy zostaniesz zakwestionowany.

Testowanie

Utwórz podstawową stronę index.html w dowolnym miejscu katalogu głównego serwera WWW, jeśli nie masz tam jeszcze zawartości.

Następnie skieruj swoją przeglądarkę internetową na https://www.yoursite.com. Powinieneś zobaczyć otwarte połączenie SSL i dostarczoną stronę. Jeśli używasz certyfikatu z podpisem własnym, przeglądarka wyświetli ostrzeżenie z ostrzeżeniem, że nie można zweryfikować tożsamości serwera. Możesz wyświetlić i zaakceptować certyfikat. W przypadku korzystania z zewnętrznego certyfikatu wszystko powinno odbywać się bez interwencji.

Upewnij się również, że nie możesz uzyskać dostępu do chronionych treści za pomocą http: //. Jeśli spróbujesz, powinieneś otrzymać komunikat o błędzie.

Rozwiązywanie problemów

Jeśli nie działa zgodnie z oczekiwaniami, najpierw sprawdź, czy serwer faktycznie działa, używając ps -a | grep apache. Jeśli to nic nie zwróci, spróbuj uruchomić go ponownie i sprawdź komunikaty o błędach na terminalu.

Sprawdź także, czy uprawnienia do pliku klucza i certyfikatu są ustawione poprawnie (patrz wyżej), a także uprawnienia do testowego pliku HTML i jego katalogu nadrzędnego.

Następnie sprawdź dzienniki. Powinieneś sprawdzić zarówno dzienniki głównego serwera, jak i dzienniki SSL, które skonfigurowałeś w swoim pliku konfiguracyjnym powyżej. Jeśli nie dostaniesz nic użytecznego, spróbuj zmienić wartość LogLevel w pliku konfiguracyjnym Apache2 na „debug”, zrestartuj Apache2 i przetestuj ponownie. Powinno to dać więcej danych z pliku dziennika.

Jeśli używasz również zwykłego serwera WWW na porcie 80, spróbuj pobrać stronę testową przez http: // zamiast https: //, aby pomóc zidentyfikować, czy problem dotyczy serwera internetowego, czy połączenia SSL. Zauważ, że w powyższej konfiguracji katalog główny serwera WWW jest inny dla http: // i https: //, więc nie będziesz (lub nie powinieneś!) Mieć dostępu do tej samej zawartości. Jeśli jednak strona testowa w katalogu głównym http: // działa dobrze, a strona testowa w katalogu głównym https: // nie, może to pomóc w zlokalizowaniu problemu.

Jeśli problemem jest połączenie SSL, przydatnym narzędziem jest s_client, które jest narzędziem diagnostycznym do rozwiązywania problemów TLS/ Połączenia SSL. Podstawowe zastosowanie to: /usr/bin/openssl s_client -connect localhost:443. Istnieje również wiele innych opcji, dla których możesz sprawdzić dokumentację. Jeśli pojawią się komunikaty o błędach, powinno to pomóc w zlokalizowaniu problemu.

Dziękujemy za wybranie SSL.com! W razie jakichkolwiek pytań prosimy o kontakt mailowy pod adresem Support@SSL.com, połączenie 1-877-SSL-SECURElub po prostu kliknij link czatu w prawym dolnym rogu tej strony.

Zapisz się do newslettera SSL.com

Nie przegap nowych artykułów i aktualizacji z SSL.com

Bądź na bieżąco i bezpiecznie

SSL.com jest światowym liderem w dziedzinie cyberbezpieczeństwa, PKI i certyfikaty cyfrowe. Zarejestruj się, aby otrzymywać najnowsze wiadomości branżowe, wskazówki i ogłoszenia o produktach od SSL.com.

Będziemy wdzięczni za Twoją opinię

Weź udział w naszej ankiecie i daj nam znać, co myślisz o swoim ostatnim zakupie.