Instalacja Apache (Linux Ubuntnu), konfiguracja wirtualnych serwerów po adresie ip.
Spisu treści:
- Wymagania wstępne
- Zainstaluj Certbot
- Wygeneruj grupę Strong Dh (Diffie-Hellman)
- Uzyskanie certyfikatu Let's Encrypt SSL
- Automatyczne odnawianie certyfikatu SSL Encrypt
- Wniosek
Let's Encrypt to urząd certyfikacji stworzony przez Internet Security Research Group (ISRG). Zapewnia bezpłatne certyfikaty SSL za pośrednictwem w pełni zautomatyzowanego procesu zaprojektowanego w celu wyeliminowania ręcznego tworzenia certyfikatu, sprawdzania poprawności, instalacji i odnawiania.
Certyfikaty wydane przez Let's Encrypt są ważne przez 90 dni od daty wystawienia i są zaufane we wszystkich głównych przeglądarkach dzisiaj.
Ten samouczek poprowadzi Cię przez proces uzyskiwania bezpłatnego Let's Encrypt przy użyciu narzędzia certbot w Debianie 9. Pokażemy również, jak skonfigurować Apache do używania nowego certyfikatu SSL i włączyć HTTP / 2.
Wymagania wstępne
Przed kontynuowaniem tego samouczka upewnij się, że zostały spełnione następujące wymagania wstępne:
- Zalogowany jako użytkownik sudo. Posiadaj nazwę domeny wskazującą adres IP twojego serwera publicznego. Skorzystamy z
example.com. Zainstalowana aplikacja. Wirtualny host Apache dla Twojej domeny. Możesz postępować zgodnie z tymi instrukcjami, aby dowiedzieć się, jak je utworzyć.
Zainstaluj Certbot
Certbot to w pełni funkcjonalne i łatwe w użyciu narzędzie, które może zautomatyzować zadania związane z uzyskiwaniem i odnawianiem certyfikatów Let's Encrypt SSL. Pakiet certbot znajduje się w domyślnych repozytoriach Debiana.
Zaktualizuj listę pakietów i zainstaluj pakiet certbot, używając następujących poleceń:
sudo apt update
sudo apt install certbot
Wygeneruj grupę Strong Dh (Diffie-Hellman)
Wymiana kluczy Diffie – Hellmana (DH) to metoda bezpiecznej wymiany kluczy kryptograficznych przez niezabezpieczony kanał komunikacyjny.
Aby wygenerować nowy zestaw parametrów 2048 bitów DH:
sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048
Jeśli chcesz, możesz zmienić rozmiar do 4096 bitów, ale w takim przypadku generowanie może potrwać dłużej niż 30 minut, w zależności od entropii systemu.
Uzyskanie certyfikatu Let's Encrypt SSL
Aby uzyskać certyfikat SSL dla naszej domeny, użyjemy wtyczki Webroot, która działa, tworząc tymczasowy plik do sprawdzania poprawności żądanej domeny w katalogu
${webroot-path}/.well-known/acme-challenge
. Serwer Let's Encrypt wysyła żądania HTTP do pliku tymczasowego w celu sprawdzenia, czy żądana domena rozpoznaje serwer, na którym działa certbot.
Aby to
.well-known/acme-challenge
wszystkie żądania HTTP dotyczące
.well-known/acme-challenge
do pojedynczego katalogu
/var/lib/letsencrypt
.
Następujące polecenia tworzą katalog i umożliwiają zapisywanie go na serwerze Apache.
sudo mkdir -p /var/lib/letsencrypt/.well-known
sudo chgrp www-data /var/lib/letsencrypt
sudo chmod g+s /var/lib/letsencrypt
Aby uniknąć powielania kodu, utwórz następujące dwa fragmenty konfiguracji:
Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/" AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS
Alias /.well-known/acme-challenge/ "/var/lib/letsencrypt/.well-known/acme-challenge/" AllowOverride None Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec Require method GET POST OPTIONS
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1 SSLHonorCipherOrder On Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" Header always set X-Frame-Options DENY Header always set X-Content-Type-Options nosniff # Requires Apache >= 2.4 SSLCompression off SSLUseStapling on SSLStaplingCache "shmcb:logs/stapling-cache(150000)" # Requires Apache >= 2.4.11 SSLSessionTickets Off SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"
Powyższy fragment wykorzystuje chipsety zalecane przez Cipherli.st, włącza zszywanie OCSP, HTTP Strict Transport Security (HSTS) i wymusza kilka nagłówków HTTP zorientowanych na bezpieczeństwo.
Przed włączeniem plików konfiguracyjnych upewnij się, że zarówno
mod_ssl
jak i
mod_headers
są włączone, wydając:
sudo a2enmod ssl
sudo a2enmod headers
Włącz moduł HTTP / 2, który sprawi, że Twoje witryny będą szybsze i bardziej niezawodne:
sudo a2enmod
Włącz pliki konfiguracyjne SSL, uruchamiając następujące polecenia:
sudo a2enconf letsencrypt
sudo a2enconf ssl-params
Załaduj ponownie konfigurację Apache, aby zmiany odniosły skutek:
sudo systemctl reload apache2
Użyj narzędzia Certbot z wtyczką webroot, aby uzyskać pliki certyfikatów SSL:
sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com
Jeśli certyfikat SSL zostanie pomyślnie uzyskany, certbot wydrukuje następujący komunikat:
IMPORTANT NOTES: IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /etc/letsencrypt/live/example.com/fullchain.pem. Your cert will expire on 2019-01-17. To obtain a new or tweaked version of this certificate in the future, simply run certbot again. To non-interactively renew *all* of your certificates, run "certbot renew" - If you lose your account credentials, you can recover through e-mails sent to [email protected]. - Your account credentials have been saved in your Certbot configuration directory at /etc/letsencrypt. You should make a secure backup of this folder now. This configuration directory will also contain certificates and private keys obtained by Certbot so making regular backups of this folder is ideal. - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:
Teraz, gdy masz pliki certyfikatów, edytuj konfigurację wirtualnego hosta domeny w następujący sposób:
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Protocols h2 http:/1.1 Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog ${APACHE_LOG_DIR}/example.com-error.log CustomLog ${APACHE_LOG_DIR}/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem # Other Apache Configuration
W powyższej konfiguracji wymuszamy HTTPS i przekierowujemy z wersji www na wersję inną niż www. Możesz dostosować konfigurację do swoich potrzeb.
Ponownie załaduj usługę Apache, aby zmiany odniosły skutek:
sudo systemctl reload apache2
Otwórz witrynę za pomocą
https://
, a zobaczysz zieloną ikonę kłódki.

Automatyczne odnawianie certyfikatu SSL Encrypt
Certyfikaty Let's Encrypt są ważne przez 90 dni. Aby automatycznie odnowić certyfikaty przed ich wygaśnięciem, pakiet certbot tworzy cronjob, który działa dwa razy dziennie i automatycznie odnowi każdy certyfikat 30 dni przed jego wygaśnięciem.
Po odnowieniu certyfikatu musimy również ponownie załadować usługę Apache. Dołącz
--renew-hook "systemctl reload apache2"
do pliku
/etc/cron.d/certbot
, aby wyglądał następująco:
0 */12 * * * root test -x /usr/bin/certbot -a \! -d /run/systemd/system && perl -e 'sleep int(rand(3600))' && certbot -q renew --renew-hook "systemctl reload apache2"
Aby przetestować proces odnawiania, użyj przełącznika certbot --dry
--dry-run
:
sudo certbot renew --dry-run
Jeśli nie ma błędów, oznacza to, że proces odnowienia zakończył się powodzeniem.
Wniosek
W tym samouczku użyłeś certyfikatu klienta Let's Encrypt, aby uzyskać certyfikaty SSL dla swojej domeny. Utworzyłeś również fragmenty Apache, aby uniknąć powielania kodu, i skonfigurowałeś Apache do używania certyfikatów. Pod koniec tego samouczka skonfigurowałeś cronjob do automatycznego odnawiania certyfikatów.
apache debian zaszyfrujmy certbot sslTen post jest częścią How to Install LAMP Stack na Debian 9 series.
Inne posty z tej serii:
• Jak zainstalować Apache na Debian 9 • Jak zainstalować PHP na Debian 9 • Jak skonfigurować Apache Virtual Hosts na Debian 9 • Jak zainstalować MariaDB na Debian 9 • Zabezpiecz Apache za pomocą Let's Encrypt na Debian 9Bezpieczeństwo MongoDB: Zabezpiecz i zabezpiecz bazę danych MongoDB przed Ransomware
Ransomware trafiło niezabezpieczone instalacje MongoDB. Dowiedz się, jak zabezpieczyć i chronić bazę danych MongoDB. Przeczytaj więcej o problemach, liście kontrolnej i sprawdzonych metodach.
Zabezpiecz apache za pomocą szyfrowania na centos 7
W tym samouczku omówimy kroki niezbędne do zainstalowania bezpłatnego certyfikatu Let's Encrypt SSL na serwerze CentOS 7 z uruchomionym Apache jako serwerem WWW.
Zabezpiecz apache za pomocą szyfrowania na centos 8
W tym samouczku wyjaśniono, jak zainstalować bezpłatny certyfikat Let's Encrypt SSL na CentOS 8 z uruchomionym Apache jako serwerem WWW. Użyjemy narzędzia certbot do uzyskania i odnowienia certyfikatów.







