Weboldal keresés

Az Apache biztonságossá tétele SSL-lel és titkosítással a FreeBSD-ben


Ebből az oktatóanyagból megtudjuk, hogyan lehet biztonságossá tenni az Apache HTTP szervert a Let's Encrypt által kínált TLS/SSL tanúsítványokkal a FreeBSD 11-ben. x. Kitérünk arra is, hogyan automatizálhatjuk a Lets’ Encrypt tanúsítványmegújítási folyamatát.

Olvassa el még: Telepítse a Let’s Encrypt for Nginx programot FreeBSD-re

A TLS/SSL-tanúsítványokat az Apache webszerver használja a végcsomópontok közötti kommunikáció titkosítására, vagy általánosabban a szerver és az ügyfél közötti kommunikáció titkosítására a biztonság érdekében. A Let’s Encrypt biztosítja a certbot parancssori segédprogramot, amely egy olyan alkalmazás, amely megkönnyíti a megbízható tanúsítványok ingyenes beszerzését.

Követelmények:

  1. A FreeBSD 11.x telepítése
  2. 10 tennivaló a FreeBSD telepítése után
  3. Az Apache, a MariaDB és a PHP telepítése FreeBSD-ben

1. lépés: Állítsa be az Apache SSL-t a FreeBSD-n

1. Mielőtt elkezdené telepíteni a certbot segédprogramot, és létrehozná az Apache TSL konfigurációs fájlját, először hozzon létre két különálló könyvtárat elérhető webhelyek és néven. >sites-enabled az Apache gyökérkonfigurációs könyvtárában az alábbi parancsok kiadásával.

Ennek a két könyvtárnak az a célja, hogy megkönnyítse a virtuális tárhely konfigurációkezelését a rendszerben anélkül, hogy módosítaná a fő Apache httpd.conf konfigurációs fájlt minden alkalommal, amikor új virtuális gazdagépet adunk hozzá.

mkdir /usr/local/etc/apache24/sites-available
mkdir /usr/local/etc/apache24/sites-enabled

2. Miután létrehozta mindkét könyvtárat, nyissa meg az Apache httpd.conf fájlt egy szövegszerkesztővel, és adja hozzá a következő sort a fájl végéhez az alábbi ábra szerint.

nano /usr/local/etc/apache24/httpd.conf

Adja hozzá a következő sort:

IncludeOptional etc/apache24/sites-enabled/*.conf

3. Ezután engedélyezze a TLS modult az Apache számára úgy, hogy létrehozza a következő új fájlt 020_mod_ssl.conf néven a modules.d< fájlban. könyvtár a következő tartalommal.

nano /usr/local/etc/apache24/modules.d/020_mod_ssl.conf

Adja hozzá a következő sorokat a 020_mod_ssl.conf fájlhoz.

Listen 443
SSLProtocol ALL -SSLv2 -SSLv3
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLPassPhraseDialog  builtin
SSLSessionCacheTimeout  300

4. Most törölje az SSL modul megjegyzését a /usr/local/etc/apache24/httpd.conf fájlból úgy, hogy eltávolítja a hashtaget az elejétől. a következő sorból az alábbi ábrán látható módon:

LoadModule ssl_module libexec/apache24/mod_ssl.so

5. Ezután hozza létre a TLS konfigurációs fájlt a domainhez az elérhető webhelyek könyvtárban, lehetőleg a domain nevével, ahogyan az itt látható. az alábbi kivonat:

nano /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf

Adja hozzá a következő virtualhost konfigurációt a bsd.lan-ssl.conf fájlhoz.

<VirtualHost *:443>
    ServerName www.yourdomain.com
	ServerAlias yourdomain.com
                DocumentRoot "/usr/local/www/apache24/data/"
	SSLEngine on

	SSLCertificateFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/cert.pem"
	SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/privkey.pem"
	SSLCertificateChainFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/fullchain.pem"

<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>

<Directory "/usr/local/www/apache24/cgi-bin">
    SSLOptions +StdEnvVars
</Directory>

	BrowserMatch "MSIE [2-5]" \
        nokeepalive ssl-unclean-shutdown \
        downgrade-1.0 force-response-1.0

	CustomLog "/var/log/apache/httpd-ssl_request.log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

	<Directory "/usr/local/www/apache24/data/">
            Options Indexes FollowSymLinks MultiViews
        #AllowOverride controls what directives may be placed in .htaccess files.       
                        AllowOverride All
        #Controls who can get stuff from this server file
                        Require all granted
        </Directory>
       
    ErrorLog "/var/log/apache/yourdomain.ssl-error.log"
    CustomLog "/var/log/apache/yourdomain.ssl-access_log" combined

</VirtualHost>

Győződjön meg arról, hogy a ServerName, ServerAlias, ErrorLog, CustomLog utasítások domainnév-változóját ennek megfelelően cserélte ki.

2. lépés: Telepítse a Lets’Encrypt-et a FreeBSD-re

6. A következő lépésben adja ki a következő parancsot a Certbot segédprogram telepítéséhez, amelyet a Let's Encrypt biztosít, és amely a következőhöz lesz használva: IngyenesApache TSL tanúsítványok az Ön domainjéhez.

A certbot telepítése közben egy sor üzenet jelenik meg a képernyőn. Használja az alábbi képernyőképet a certbot segédprogram konfigurálásához. Ezenkívül a certbot segédprogram fordítása és telepítése eltarthat egy ideig, a gép erőforrásaitól függően.

cd /usr/ports/security/py-certbot
make install clean

7. A fordítási folyamat befejezése után adja ki az alábbi parancsot a certbot segédprogram és a certbot szükséges függőségek frissítéséhez.

pkg install py27-certbot
pkg install py27-acme

8. Ha tanúsítványt szeretne létrehozni a domainhez, adja ki az alábbi parancsot. Győződjön meg arról, hogy a megfelelő webroot helyet adta meg, ahol a webhely fájljai tárolódnak a fájlrendszerben (a DocumentRoot direktíva a domain konfigurációs fájljából) a -w jelző használatával. Ha több aldomainje van, adja hozzá mindet a -d jelzővel.

certbot certonly --webroot -w /usr/local/www/apache24/data/ -d yourdomain.com -d www.yourdomain.com

A tanúsítvány beszerzése közben adjon meg egy e-mail címet a tanúsítvány megújításához, nyomja meg az a gombot, hogy elfogadja a Let’s Encrypt általános szerződési feltételeit, és az n billentyűt, ha nem szeretné megosztani az e-mail címet a Let’s Encrypt partnerekkel.

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Enter email address (used for urgent renewal and security notices) (Enter 'c' to
cancel):[email 
There seem to be problems with that address. Enter email address (used for
urgent renewal and security notices)  If you really want to skip this, you can
run the client with --register-unsafely-without-email but make sure you then
backup your account key from /etc/letsencrypt/accounts   (Enter 'c' to cancel):[email 

-------------------------------------------------------------------------------
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.1.1-August-1-2016.pdf. You must agree
in order to register with the ACME server at
https://acme-v01.api.letsencrypt.org/directory
-------------------------------------------------------------------------------
(A)gree/(C)ancel: a ------------------------------------------------------------------------------- Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about EFF and our work to encrypt the web, protect its users and defend digital rights. ------------------------------------------------------------------------------- (Y)es/(N)o: n Obtaining a new certificate Performing the following challenges: http-01 challenge for www.domain.com Using the webroot path /usr/local/www/apache24/data for all unmatched domains. Waiting for verification... Cleaning up challenges IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at /usr/local/etc/letsencrypt/live/www.yourdomain.com/fullchain.pem. Your cert will expire on 2017-11-15. 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" - Your account credentials have been saved in your Certbot configuration directory at /usr/local/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: https://eff.org/donate-le

9. Miután megszerezte a domainhez tartozó tanúsítványokat, futtathatja az ls parancsot a tanúsítvány összes összetevőjének (lánc, privát kulcs, tanúsítvány) listázásához az alábbi példában bemutatott módon.

ls -al /usr/local/etc/letsencrypt/live/www.yourdomain.com/

3. lépés: Frissítse az Apache TLS-tanúsítványokat a FreeBSD-n

10. A Let’s Encrypt tanúsítványok webhelyéhez való hozzáadásához nyissa meg a domainhez tartozó apache konfigurációs fájlt, és frissítse a következő sorokat, hogy azok tükrözzék a kiadott tanúsítványok elérési útját.

nano /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf

Adja hozzá ezeket a TLS-tanúsítványsorokat:

SSLCertificateFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/cert.pem"
	SSLCertificateKeyFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/privkey.pem"
	SSLCertificateChainFile "/usr/local/etc/letsencrypt/live/www.yourdomain.com/fullchain.pem"

11. Végül engedélyezze a TLS-konfigurációs fájlt úgy, hogy létrehoz egy szimbolikus hivatkozást a domain TLS-konfigurációs fájljához a webhelyek-engedélyezett könyvtárba, ellenőrizze az Apache konfigurációit lehetséges szintaktikai hibákért, és ha a szintaxis rendben van, indítsa újra az Apache démont az alábbi parancsok kiadásával.

ln -sf /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf /usr/local/etc/apache24/sites-enabled/
apachectl -t
service apache24 restart

12. Annak ellenőrzésére, hogy az Apache szolgáltatás figyeli-e a 443-as HTTPS portot, adja ki a következő parancsot a httpd hálózati socketek listázásához.

sockstat -4 | grep httpd

13. Egy böngészőből HTTPS protokollon keresztül navigálhat a domain címére, hogy megbizonyosodjon arról, hogy a Let’s Encrypt tanúsítványok alkalmazása sikeresen megtörtént.

https://www.yourdomain.com

14. A kiadott Let’s Encrypt tanúsítvánnyal kapcsolatos további információkhoz a parancssorból, használja az openssl parancsot az alábbiak szerint.

openssl s_client -connect www.yourdomain.com:443

15. Azt is ellenőrizheti, hogy a forgalom titkosított-e a Titkosítsuk a CA által biztosított érvényes tanúsítvánnyal egy mobileszközről, amint az az alábbi mobil képernyőképen látható.

Ez minden! Az ügyfelek mostantól biztonságosan látogathatják webhelyét, mivel a szerver és az ügyfél böngészője között folyó forgalom titkosított. A certbot segédprogrammal kapcsolatos összetettebb feladatokért látogasson el a következő linkre: https://certbot.eff.org/