Si të sigurojmë Apache me SSL dhe Le të Enkriptojmë në FreeBSD
Në këtë tutorial do të mësojmë se si të sigurojmë serverin Apache HTTP me certifikata TLS/SSL të ofruara nga Let's Encrypt në FreeBSD 11.x. Ne do të mbulojmë gjithashtu se si të automatizojmë procesin e rinovimit të certifikatës për Lets' Encrypt.
Certifikatat TLS/SSL përdoren nga serveri në internet Apache për të kriptuar komunikimin midis nyjeve fundore, ose më të zakonshmet midis serverit dhe klientit në mënyrë që të ofrohet siguri. Let's Encrypt ofron shërbimin e linjës së komandës certbot, i cili është një aplikacion që mund të lehtësojë mënyrën se si mund të merrni certifikata të besuara falas.
- Instalimi i FreeBSD 11.x
- 10 gjëra për të bërë pas instalimit të FreeBSD
- Si të instaloni Apache, MariaDB dhe PHP në FreeBSD
Hapi 1: Konfiguro Apache SSL në FreeBSD
1. Përpara se të filloni të instaloni programin certbot dhe të krijoni skedarin e konfigurimit TSL për Apache, së pari krijoni dy drejtori të dallueshme të quajtura sites-available dhe sites-enabled në direktorinë e konfigurimit rrënjë Apache duke lëshuar komandat e mëposhtme.
Qëllimi i këtyre dy drejtorive është të lehtësojnë menaxhimin e konfigurimit të hostimit virtual në sistem, pa modifikuar skedarin kryesor të konfigurimit të Apache httpd.conf sa herë që shtojmë një host të ri virtual.
# mkdir /usr/local/etc/apache24/sites-available
# mkdir /usr/local/etc/apache24/sites-enabled
2. Pasi të keni krijuar të dy drejtoritë, hapni skedarin Apache httpd.conf me një redaktues teksti dhe shtoni rreshtin e mëposhtëm afër fundit të skedarit, siç ilustrohet më poshtë.
# nano /usr/local/etc/apache24/httpd.conf
Shtoni rreshtin e mëposhtëm:
IncludeOptional etc/apache24/sites-enabled/*.conf
3. Më pas, aktivizoni modulin TLS për Apache duke krijuar skedarin e ri të mëposhtëm me emrin 020_mod_ssl.conf në drejtorinë modules.d me përmbajtjen e mëposhtme.
# nano /usr/local/etc/apache24/modules.d/020_mod_ssl.conf
Shtoni rreshtat e mëposhtëm në skedarin 020_mod_ssl.conf.
Listen 443
SSLProtocol ALL -SSLv2 -SSLv3
SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5
SSLPassPhraseDialog builtin
SSLSessionCacheTimeout 300
4. Tani, hiqni komentin e modulit SSL nga skedari /usr/local/etc/apache24/httpd.conf duke hequr hashtagun nga fillimi i rreshtit të mëposhtëm siç ilustrohet më poshtë:
LoadModule ssl_module libexec/apache24/mod_ssl.so
5. Më pas, krijoni skedarin e konfigurimit TLS për domenin tuaj në drejtorinë e disponueshme të faqeve, mundësisht me emrin e domenit tuaj, siç paraqitet në fragmentin e mëposhtëm:
# nano /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf
Shtoni konfigurimin vijues të hostit virtual në skedarin bsd.lan-ssl.conf.
<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>
Sigurohuni që të zëvendësoni variablin e emrit të domenit nga deklaratat Emri i Server, ServerAlias, ErrorLog, CustomLog në përputhje me rrethanat.
Hapi 2: Instaloni Lets'Encrypt në FreeBSD
6. Në hapin tjetër, lëshoni komandën e mëposhtme për të instaluar programin certbot të ofruar nga Let's Encrypt, i cili do të përdoret për të marrë certifikata falas Apache TSL për domenin tuaj.
Gjatë instalimit të certbot, një seri kërkesash do të shfaqen në ekranin tuaj. Përdorni pamjen e mëposhtme të ekranit për të konfiguruar programin certbot. Gjithashtu, përpilimi dhe instalimi i programit certbot mund të marrë pak kohë, në varësi të burimeve të makinës suaj.
# cd /usr/ports/security/py-certbot
# make install clean
7. Pasi të ketë përfunduar procesi i përpilimit, lëshoni komandën e mëposhtme në mënyrë që të përditësoni shërbimin e certbot dhe varësitë e nevojshme të certbot.
# pkg install py27-certbot
# pkg install py27-acme
8. Për të gjeneruar një certifikatë për domenin tuaj, lëshoni komandën siç ilustrohet më poshtë. Sigurohuni që të keni dhënë vendndodhjen e saktë të webroot ku skedarët e faqes suaj të internetit janë ruajtur në sistemin e skedarëve (direktiva e DocumentRoot nga skedari i konfigurimit të domenit tuaj) duke përdorur flamurin -w
. Nëse keni shumë nënfusha, shtoni të gjitha me flamurin -d
.
# certbot certonly --webroot -w /usr/local/www/apache24/data/ -d yourdomain.com -d www.yourdomain.com
Gjatë marrjes së certifikatës, jepni një adresë emaili për rinovimin e certifikatës, shtypni a për të rënë dakord me termat dhe kushtet e Let's Encrypt dhe n
për të mos ndarë adresën e emailit Let's Encrypt partnerët.
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. Pasi të keni marrë certifikatat për domenin tuaj, mund të ekzekutoni komandën ls në mënyrë që të listoni të gjithë përbërësit e certifikatës (zinxhiri, çelësi privat, certifikata) siç paraqitet në shembullin e mëposhtëm.
# ls -al /usr/local/etc/letsencrypt/live/www.yourdomain.com/
Hapi 3: Përditësoni Certifikatat Apache TLS në FreeBSD
10. Për të shtuar certifikatat Let's Encrypt në faqen tuaj të internetit, hapni skedarin e konfigurimit të apache për domenin tuaj dhe përditësoni linjat e mëposhtme për të pasqyruar rrugën e certifikatave të lëshuara.
# nano /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf
Shtoni këto linja certifikate TLS:
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. Së fundi, aktivizoni skedarin e konfigurimit TLS, duke krijuar një lidhje simbolike për skedarin e konfigurimit të domenit tuaj TLS në direktorinë e aktivizuar nga faqet, kontrolloni konfigurimet e Apache për gabime të mundshme sintaksore dhe, nëse sintaksa është në rregull, rinisni Apache daemon duke lëshuar komandat e mëposhtme.
# ln -sf /usr/local/etc/apache24/sites-available/bsd.lan-ssl.conf /usr/local/etc/apache24/sites-enabled/
# apachectl -t
# service apache24 restart
12. Për të kontrolluar nëse shërbimi Apache po dëgjon në portin HTTPS 443, lëshoni komandën e mëposhtme për të renditur bazat e rrjetit httpd.
# sockstat -4 | grep httpd
13. Mund të lundroni në adresën tuaj të domenit nga një shfletues nëpërmjet protokollit HTTPS për të konfirmuar që certifikatat Let's Encrypt janë aplikuar me sukses.
https://www.yourdomain.com
14. Për të marrë informacion shtesë në lidhje me certifikatën e lëshuar Let's Encrypt nga rreshti i komandës, përdorni komandën openssl si më poshtë.
# openssl s_client -connect www.yourdomain.com:443
15. Mund të verifikoni gjithashtu nëse trafiku është i koduar me një certifikatë të vlefshme të ofruar nga Let's Encrypt CA nga një pajisje celulare siç ilustrohet në pamjen e mëposhtme të ekranit celular.
Kjo eshte e gjitha! Klientët tani mund të vizitojnë faqen tuaj të internetit në mënyrë të sigurt, sepse trafiku që rrjedh midis serverit dhe shfletuesit të klientit është i koduar. Për detyra më komplekse në lidhje me programin certbot vizitoni lidhjen e mëposhtme: https://certbot.eff.org/