Android

Biztonsági apache titkosítással az ubuntu 18.04-en

Introduction to Amazon Web Services by Leo Zhadanovsky

Introduction to Amazon Web Services by Leo Zhadanovsky

Tartalomjegyzék:

Anonim

A Let's Encrypt az Internet Security Research Group (ISRG) által létrehozott tanúsító hatóság. Ingyenes SSL tanúsítványokat nyújt egy teljesen automatizált folyamat révén, amely a kézi tanúsítványok létrehozását, érvényesítését, telepítését és megújítását akadályozza meg.

A Let's Encrypt által kiadott tanúsítványokat ma minden nagyobb böngésző megbízza.

Ebben az oktatóanyagban lépésről lépésre nyújtunk útmutatást arról, hogyan lehet az Apache-t biztonságossá tenni a Encrypt segítségével az Ubuntu 18.04 certbot eszközével.

Előfeltételek

Mielőtt folytatná ezt az oktatóprogramot, győződjön meg arról, hogy teljesítette a következő feltételeket:

  • A nyilvános kiszolgáló IP-jére mutató domain név. A példa.com szolgáltatást fogjuk használni. Telepítette az Apache-t egy domain-apache virtuális gazdagéppel.

Telepítse a Certbotot

A Certbot egy teljes funkcionalitású és könnyen használható eszköz, amely automatizálja a Let's Encrypt SSL tanúsítványok beszerzésének és megújításának, valamint a webszerverek konfigurálásának feladatait. A certbot csomag szerepel az alapértelmezett Ubuntu tárolókban.

Frissítse a csomagok listáját és telepítse a certbot csomagot:

sudo apt update sudo apt install certbot

Erős Dh (Diffie-Hellman) csoport létrehozása

A Diffie – Hellman kulcscsere (DH) a kriptográfiai kulcsok biztonságos cseréje egy nem biztonságos kommunikációs csatornán. Új biztonsági, 2048 bites DH-paramétereket generálunk a biztonság megerősítése érdekében:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048 Ha szeretné, 4096 bitig megváltoztathatja a méretet, de ebben az esetben a generálás a rendszer entrópiájától függően több mint 30 percet vehet igénybe.

SSL tanúsítvány beszerzése

A domain SSL-tanúsítványának beszerzéséhez a Webroot beépülő modult fogjuk használni, amely ideiglenes fájlt hoz létre a kért tartomány érvényesítéséhez a ${webroot-path}/.well-known/acme-challenge könyvtárban. A Let's Encrypt szerver HTTP kéréseket küld az ideiglenes fájlhoz annak ellenőrzésére, hogy a kért tartomány feloldja-e azt a szervert, amelyen a certbot fut.

Az egyszerűbbé tétele érdekében az .well-known/acme-challenge összes HTTP kérését a /var/lib/letsencrypt könyvtárba /var/lib/letsencrypt .

A következő parancsok elkészítik a könyvtárat, és újraírhatóvá teszik azt az Apache szerver számára.

sudo mkdir -p /var/lib/letsencrypt/.well-known sudo chgrp www-data /var/lib/letsencrypt sudo chmod g+s /var/lib/letsencrypt

A kettőzés elkerülése érdekében hozza létre a következő két konfigurációs kódrészletet:

/etc/apache2/conf-available/letsencrypt.conf

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 /etc/apache2/conf-available/ssl-params.conf

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"

A fenti kivonat a Cipherli.st által javasolt aprítókat használja, lehetővé teszi az OCSP tűzés, a HTTP szigorú szállításbiztonság (HSTS) használatát, és kevés biztonsági szempontból összpontosított HTTP-fejlécet hajt végre.

A konfigurációs fájlok engedélyezése előtt ellenőrizze, hogy a mod_ssl és a mod_headers is engedélyezve vannak-e:

sudo a2enmod ssl sudo a2enmod headers

Ezután engedélyezze az SSL konfigurációs fájlokat a következő parancsok futtatásával:

sudo a2enconf letsencrypt sudo a2enconf ssl-params

Engedélyezze a HTTP / 2 modult, amely gyorsabbá és robusztusabbá teszi webhelyeit:

sudo a2enmod

Töltse újra az Apache konfigurációját, hogy a változások érvénybe lépjenek:

sudo systemctl reload apache2

Most futtathatjuk a Certbot eszközt a webroot pluginnel és az SSL tanúsítványfájlokat a következő gépeléssel szerezhetjük be:

sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com

Ha az SSL-tanúsítványt sikeresen megszerezte, a certbot a következő üzenetet nyomtatja ki:

IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/example.com/privkey.pem Your cert will expire on 2018-10-28. 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 like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF:

Most, hogy megvan a tanúsítványfájlok, módosítsa a tartomány virtuális gazdagép konfigurációját az alábbiak szerint:

/etc/apache2/sites-available/example.com.conf

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

A fenti konfigurációval kényszerítjük a HTTPS-t, és átirányítunk a www-ról a nem-www verzióra. Ha szabadon beállíthatja a konfigurációt az Ön igényei szerint.

Töltse újra az Apache szolgáltatást a módosítások hatályba lépése érdekében:

sudo systemctl reload apache2

Most már megnyithatja webhelyét a https:// , és egy zöld zár ikonra kattint.

Automatikus megújítás Titkosítsuk az SSL tanúsítványt

Titkosítsuk a tanúsítványok 90 napig érvényesek. A tanúsítványok automatikus megújításához, mielőtt azok lejárnak, a certbot csomag létrehoz egy cronjob-ot, amely naponta kétszer fut, és 30 nappal a lejárta előtt automatikusan megújítja a tanúsítványokat.

A tanúsítvány megújítása után az Apache szolgáltatást is újra kell töltenünk. --renew-hook "systemctl reload apache2" fájlt az /etc/cron.d/certbot fájlba úgy, hogy a következőképpen néz ki:

/etc/cron.d/certbot

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"

A megújítási folyamat teszteléséhez használja a certbot --dry-run kapcsolót:

sudo certbot renew --dry-run

Ha nincs hiba, ez azt jelenti, hogy a megújítási folyamat sikeres volt.

Következtetés

Ebben az oktatóprogramban a Let's Encrypt kliens tanúsítványt használta az SSL tanúsítványok letöltéséhez a domainjéhez. Az Apache kódrészleteket is létrehozott a kód sokszorosításának elkerülése érdekében, és az Apache-t konfigurálta a tanúsítványok használatához. Az oktatóprogram végén létrehozott egy cronjob-ot az automatikus tanúsítási megújításhoz.

apache ubuntu titkosítsuk a certbot ssl-t

Ez a bejegyzés a how-to-install-lamp-stack-on-ubuntu-18-04 sorozat részét képezi.

A sorozat többi hozzászólása:

• Az Apache telepítése az Ubuntu 18.04-en • Az Apache virtuális gazdagépeinek beállítása az Ubuntu 18.04-en • Biztonságos Apache titkosítással az Ubuntu 18.04-en • Hogyan telepíthetjük a MySQL-t az Ubuntu 18.04-en • Hogyan telepíthetjük a PHP-t az Ubuntu 18.04-en