Android

Biztonsági apache titkosítással a Debian 9-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 kiállított tanúsítványok a kiadástól számított 90 napig érvényesek, és manapság az összes fő böngésző megbízható.

Ez az oktatóprogram végigvezeti Önt egy ingyenes Let's Encrypt beszerzésének folyamatában a Debian 9-en a certbot eszköz használatával. Megmutatjuk azt is, hogyan állítsuk be az Apache-t az új SSL tanúsítvány használatához és a HTTP / 2 engedélyezéséhez.

Előfeltételek

A bemutató folytatása előtt győződjön meg arról, hogy teljesítette a következő előfeltételeket:

  • Sudo jogosultságokkal rendelkező felhasználóként jelentkezett be.Minden domain névre mutat, amely a szerver nyilvános szerver IP-jére mutat. A example.com .Apache fájlt telepítjük. Az apache virtuális gazdagépe a domainjéhez. Kövesse ezeket az utasításokat a létrehozás részleteiről.

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 feladatait. A certbot csomag szerepel az alapértelmezett Debian tárolókban.

Frissítse a csomagok listáját és telepítse a certbot csomagot a következő parancsokkal:

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 2048 bites DH paraméterek készítéséhez a futtatáshoz:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048 Ha úgy tetszik, 4096 bit méretre is módosíthatja 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

Tartományunk 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 létrehozják a könyvtárat, és írhatóvá teszik azt az Apache-kiszolgáló 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

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

sudo a2enmod

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

sudo a2enconf letsencrypt sudo a2enconf ssl-params

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

sudo systemctl reload apache2

Használja a Certbot eszközt a webroot bővítménnyel az SSL tanúsítványfájlok beszerzéséhez:

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: 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:

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

Nyissa meg 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 az igazolásokat.

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" az /etc/cron.d/certbot fájlhoz, tehát 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ányát használta SSL-tanúsítványok beszerzésére 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 debian titkosítsuk a certbot ssl-t

Ez a bejegyzés a LAMP Stack telepítésének része a Debian 9 sorozaton.

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

• Hogyan telepítsük az Apache-t a Debian 9-re • Hogyan telepítsük a PHP-t a Debian 9-re • Hogyan állítsuk be az Apache virtuális gazdagépeket a Debian 9-en • Hogyan telepítsük a MariaDB-t a Debian 9-re • Biztonságos Apache-t a titkosítással a Debian 9-en