Kuidas turvata Apache SSL-iga ja krüpteerime FreeBSD-s


Selles õpetuses õpime, kuidas kaitsta Apache HTTP-serverit TLS/SSL-sertifikaatidega, mida pakub Let’s Encrypt FreeBSD 11.x-s. Samuti käsitleme, kuidas Lets ’Encrypt'i sertifikaatide uuendamise protsessi automatiseerida.

TLS/SSL-sertifikaate kasutab Apache veebiserver lõppsõlmede vahelise või serveri ja kliendi vahelise side krüptimiseks turvalisuse tagamiseks. Let’s Encrypt pakub käsurea utiliiti certbot, mis on rakendus, mis hõlbustab usaldusväärsete sertifikaatide tasuta hankimist.

  1. FreeBSD 11.x installimine
  2. 10 toimingut pärast FreeBSD installimist
  3. Kuidas installida FreeBSD-sse Apache, MariaDB ja PHP

1. samm: seadistage FreeBSD-s Apache SSL

1. Enne certboti utiliidi installimise alustamist ja Apache jaoks TSL-i konfiguratsioonifaili loomist looge Apache juurkonfiguratsiooni kataloogis kõigepealt kaks eraldi kataloogi nimega saidid ja saidid, väljastades alltoodud käsud.

Nende kahe kataloogi eesmärk on hõlbustada virtuaalse hostimise konfiguratsiooni haldamist süsteemis, muutmata Apache httpd.conf peamist konfiguratsioonifaili iga kord, kui lisame uue virtuaalse hosti.

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

2. Pärast mõlema kataloogi loomist avage tekstiredaktoriga fail Apache httpd.conf ja lisage järgmine rida faili lõppu, nagu allpool illustreeritud.

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

Lisage järgmine rida:

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

3. Seejärel lubage Apache jaoks TLS-moodul, luues järgmise sisuga järgmise faili nimega 020_mod_ssl.conf kataloogis modules.d.

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

Lisage järgmised read faili 020_mod_ssl.conf.

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

4. Nüüd eemaldage SSL-mooduli kommentaar failist /usr/local/etc/apache24/httpd.conf, eemaldades räsimärgi järgmise rea algusest, nagu allpool illustreeritud:

LoadModule ssl_module libexec/apache24/mod_ssl.so

5. Seejärel looge saidil saadaolevas kataloogis oma domeeni jaoks TLS-i konfiguratsioonifail, eelistatavalt oma domeeni nimega, nagu on esitatud allpool olevas katkendis:

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

Lisage failile bsd.lan-ssl.conf järgmine virtuaalhosti konfiguratsioon.

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

Veenduge, et asendate vastavalt domeeninime muutuja lausetest ServerName, ServerAlias, ErrorLog, CustomLog.

2. samm: installige Lets’Encrypt FreeBSD-sse

6. Järgmise sammuna väljastage Let’s Encrypt'i pakutava certboti utiliidi installimiseks järgmine käsk, mida kasutatakse teie domeeni Apache TSL-i tasuta sertifikaatide saamiseks.

Certboti installimise ajal kuvatakse teie ekraanil rida viipasid. Certboti utiliidi konfigureerimiseks kasutage allolevat ekraanipilti. Samuti võib certboti utiliidi kompileerimine ja installimine võtta aega, olenevalt teie masina ressurssidest.

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

7. Pärast kompileerimisprotsessi lõppu väljastage järgmine käsk, et värskendada certboti utiliiti ja certboti vajalikke sõltuvusi.

# pkg install py27-certbot
# pkg install py27-acme

8. Domeeni jaoks sertifikaadi loomiseks väljastage käsk, nagu allpool illustreeritud. Veenduge, et sisestate lipu -w abil õige veebijuure asukoha, kus teie veebisaidi failid on failisüsteemis salvestatud (teie domeeni konfiguratsioonifailist leiate DocumentRoot-käsu). Kui teil on mitu alamdomeeni, lisage need kõik lipuga -d .

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

Sertifikaadi hankimisel sisestage sertifikaadi uuendamiseks e-posti aadress, vajutage klahvi a, et nõustuda Let’s Encrypt nõuete ja tingimustega, ning n , et mitte jagada e-posti aadressi Let’s Encrypt partnereid.

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. Pärast domeeni sertifikaatide hankimist võite käivitada käsu ls, et loetleda kõik sertifikaadi komponendid (kett, privaatne võti, sertifikaat), nagu on näidatud allpool toodud näites.

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

3. samm: värskendage FreeBSD-s Apache TLS-i sertifikaate

10. Let’s Encrypt sertifikaatide lisamiseks oma veebisaidile avage oma domeeni apache'i konfiguratsioonifail ja värskendage järgmisi ridu, et need kajastaksid väljastatud sertifikaatide teed.

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

Lisage need TLS-i sertifikaadi read:

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. Lõpuks lubage TLS-i konfiguratsioonifail, luues oma domeeni TLS-i konfiguratsioonifaili jaoks sümboli link saitidega toestatud kataloogi, kontrollige Apache'i konfiguratsioone võimalike süntaksivigade osas ja kui süntaks on korras, taaskäivitage Apache deemon, väljastades alltoodud käsud.

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

12. Selleks et kontrollida, kas Apache-teenus kuulab HTTPS-porti 443, väljastage järgmine käsk, et loetleda httpd-võrgupesad.

# sockstat -4 | grep httpd

13. HTTPS-protokolli kaudu saate navigeerida brauseris oma domeeni aadressile, et veenduda, et Let’s Encrypt sertifikaadid on edukalt rakendatud.

https://www.yourdomain.com

14. Lisateabe saamiseks väljaantud Let’s Encrypt sertifikaadi kohta käsurealt kasutage käsku openssl järgmiselt.

# openssl s_client -connect www.yourdomain.com:443

15. Samuti saate kontrollida, kas liiklus on krüptitud, kehtiva sertifikaadiga, mille Let's Encrypt CA pakub mobiilseadmest, nagu on näidatud allpool olevas mobiilipildis.

See on kõik! Kliendid saavad nüüd teie veebisaiti turvaliselt külastada, kuna serveri ja kliendi brauseri vahel liikuv liiklus on krüptitud. Certboti utiliiti puudutavate keerukamate ülesannete saamiseks külastage järgmist linki: https://certbot.eff.org/