Android

Biztonsági apache titkosítással a centos 7-en

Git Alapismeretek 06. Kapcsolódási módok

Git Alapismeretek 06. Kapcsolódási módok

Tartalomjegyzék:

Anonim

A Let's Encrypt egy ingyenes, automatizált és nyílt tanúsítási jogosultság, amelyet az Internet Security Research Group (ISRG) fejlesztett ki. A Let's Encrypt által kiállított tanúsítványok a kiállítás napjától számított 90 napig érvényesek, és manapság az összes fő böngésző megbízható.

Ebben az oktatóanyagban bemutatjuk az ingyenes, az SSL-titkosítás igazolásának telepítéséhez szükséges lépéseket egy CentOS 7 szerverre, amely Apache webszerverként fut. A certbot segédprogramot fogjuk használni a Encrypt tanúsítványok beszerzéséhez és megújításához.

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:

  • Van egy domain név, amely a nyilvános kiszolgáló IP-jére mutat. A példát.com fogjuk használni. AzApache telepítve van és fut a kiszolgálón.A domainhez tartozó Apache virtuális gazdagépen van. A 80. és 443. portok nyitva vannak a tűzfalban.

Telepítse a következő csomagokat, amelyek szükségesek egy SSL titkosított webszerverhez:

yum install mod_ssl openssl

Telepítse a Certbotot

A Certbot olyan eszköz, amely leegyszerűsíti az SSL-tanúsítványok beszerzésének folyamatát a Encrypt alkalmazásból, és automatikusan engedélyezi a HTTPS-t a szerveren.

A certbot csomag telepíthető az EPEL-től. Ha az EPEL lerakat nincs telepítve a rendszerére, telepítheti a következő paranccsal:

sudo yum install epel-release

Miután engedélyezte az EPEL lerakatot, telepítse a certbot csomagot a következő gépeléssel:

sudo yum 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. Generáljon egy új, 2048 bites DH paramétereket a biztonság megerősítése érdekében:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048 A méret akár 4096 bit is megváltoztatható, de ebben az esetben a generálás a rendszer entrópiájától függően 30 percnél tovább tarthat.

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 a .well-known/acme-challenge összes HTTP kérését a /var/lib/letsencrypt könyvtárba /var/lib/letsencrypt .

Futtassa a következő parancsokat a könyvtár létrehozásához és az Apache szerver számára írhatóvá tételéhez:

sudo mkdir -p /var/lib/letsencrypt/.well-known sudo chgrp apache /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/httpd/conf.d/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/httpd/conf.d/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

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

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

sudo systemctl reload

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-12-07. 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:

A CentOS 7 az Apache 2.4.6 verzióját szállítja, amely nem tartalmazza az SSLOpenSSLConfCmd irányelvet. Ez az irányelv csak az Apache 2.4.8 későbbi verzióján érhető el, és az OpenSSL paraméterek, például a Diffie – Hellman kulcscsere (DH) paramétereinek konfigurálására szolgál.

Új kombinált fájlt kell létrehoznunk a Let's Encrypt SSL tanúsítvány és a létrehozott DH fájl felhasználásával. Ehhez írja be:

cat /etc/letsencrypt/live/example.com/cert.pem /etc/ssl/certs/dhparam.pem >/etc/letsencrypt/live/example.com/cert.dh.pem

Most, hogy minden fel van állítva, módosítsa a domain virtuális gazdagép konfigurációját az alábbiak szerint:

/etc/httpd/conf.d/example.com.conf

ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.pem # Other Apache Configuration ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ ServerName example.com ServerAlias www.example.com Redirect permanent / https://example.com/ DocumentRoot /var/www/example.com/public_html ErrorLog /var/log/httpd/example.com-error.log CustomLog /var/log/httpd/example.com-access.log combined SSLEngine On SSLCertificateFile /etc/letsencrypt/live/example.com/cert.dh.pem SSLCertificateKeyFile /etc/letsencrypt/live/example.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/example.com/chain.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.

Indítsa újra az Apache szolgáltatást a változások hatályba lépése érdekében:

sudo systemctl restart

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, létrehozunk egy cronjob-ot, amely naponta kétszer fut, és automatikusan megújítja a tanúsítványokat 30 nappal a lejárta előtt.

Futtassa a crontab parancsot egy új cronjob létrehozásához, amely megújítja a tanúsítványt, hozzon létre egy új kombinált fájlt, amely tartalmazza a DH kulcsot, és indítsa újra az apache-t:

sudo crontab -e

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

Mentse és zárja be a fájlt.

A megújítási folyamat teszteléséhez használhatja a certbot parancsot, amelyet a --dry-run kapcsoló követ:

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 centos titkosítsuk a certbot ssl-t

Ez a bejegyzés része a Install LAMP Stack on CentOS 7 sorozatnak.

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

• Az Apache telepítése a CentOS 7-re • A MySQL telepítése a CentOS 7-re • Az Apache virtuális gazdagépeinek beállítása a CentOS 7-en • Biztonságos Apache a EncOSpt segítségével a CentOS 7-en