Android

I-secure ang apache sa pag-encrypt natin sa ubuntu 18.04

How To Install HTTPS to Secure Apache with Let's Encrypt TLS/SSL Certificates on UBUNTU 18.04 LTS

How To Install HTTPS to Secure Apache with Let's Encrypt TLS/SSL Certificates on UBUNTU 18.04 LTS

Talaan ng mga Nilalaman:

Anonim

Ang Encrypt ay isang awtoridad sa sertipiko na nilikha ng Internet Security Research Group (ISRG). Nagbibigay ito ng mga libreng sertipiko ng SSL sa pamamagitan ng isang ganap na awtomatikong proseso na idinisenyo upang maalis ang manu-manong paggawa ng sertipiko, pagpapatunay, pag-install, at pag-update.

Ang mga sertipiko na inisyu ng Let’s Encrypt ay pinagkakatiwalaan ng lahat ng mga pangunahing browser ngayon.

Sa tutorial na ito, bibigyan kami ng isang hakbang sa pamamagitan ng mga tagubilin sa hakbang tungkol sa kung paano ma-secure ang iyong Apache sa Pag-encrypt Natin gamit ang sertbot na tool sa Ubuntu 18.04.

Mga kinakailangan

Tiyaking nakilala mo ang sumusunod na mga kinakailangan bago magpatuloy sa tutorial na ito:

  • Ang pangalan ng domain na tumuturo sa iyong public server IP. Gagamitin namin ang example.com . Mayroon kang Apache na naka-install sa isang apache virtual host para sa iyong domain.

I-install ang Certbot

Ang Certbot ay isang ganap na itinampok at madaling gamitin na tool na maaaring awtomatiko ang mga gawain para sa pagkuha at pag-renew ng Mga sertipiko ng SSL at pag-configure ng mga web server. Ang sertipikong pakete ay kasama sa default na mga repositories ng Ubuntu.

I-update ang listahan ng mga pakete at i-install ang package ng certbot:

sudo apt update sudo apt install certbot

Bumuo ng Malakas na Dh (Diffie-Hellman) Grupo

Ang diffie-Hellman key exchange (DH) ay isang paraan ng ligtas na pagpapalitan ng mga key ng cryptographic sa isang hindi ligtas na channel ng komunikasyon. Kami ay bubuo ng isang bagong hanay ng mga 2048 bit DH mga parameter upang palakasin ang seguridad:

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048 Kung nais mo, maaari mong baguhin ang laki hanggang sa 4096 bits, ngunit sa kasong iyon, ang henerasyon ay maaaring tumagal ng higit sa 30 minuto depende sa entropy ng system.

Pagkuha ng isang I-encrypt na SSL sertipiko

Upang makakuha ng isang SSL sertipiko para sa domain, gagamitin namin ang plugin ng Webroot na gumagana sa pamamagitan ng paglikha ng isang pansamantalang file para sa pagpapatunay ng hiniling na domain sa ${webroot-path}/.well-known/acme-challenge . Ginagawa ng server ng Let's Encrypt ang mga kahilingan ng HTTP sa pansamantalang file upang mapatunayan na ang hiniling na domain ay nagpasiya sa server kung saan tumatakbo ang sertbot.

Upang gawing mas simple ay i-map namin ang lahat ng mga kahilingan sa HTTP para sa .well-known/acme-challenge sa isang solong direktoryo, /var/lib/letsencrypt .

Ang mga sumusunod na utos ay lilikha ng direktoryo at gagawin itong mai-sulat para sa server ng Apache.

sudo mkdir -p /var/lib/letsencrypt/.well-known sudo chgrp www-data /var/lib/letsencrypt sudo chmod g+s /var/lib/letsencrypt

Upang maiwasan ang pagdoble ng code lumikha ng mga sumusunod na dalawang snippet ng pagsasaayos:

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

Ang snippet sa itaas ay gumagamit ng mga tsinelas na inirerekomenda ng Cipherli.st, nagbibigay-daan sa OCSP Stapling, HTTP Strict Transport Security (HSTS) at nagpapatupad ng kaunting seguridad ‑ na nakatuon ang mga header ng

Bago paganahin ang mga file ng pagsasaayos, siguraduhin na kapwa mod_ssl parehong mod_ssl at mod_headers pamamagitan ng pagpapalabas:

sudo a2enmod ssl sudo a2enmod headers

Susunod, paganahin ang mga file ng pagsasaayos ng SSL sa pamamagitan ng pagpapatakbo ng mga sumusunod na utos:

sudo a2enconf letsencrypt sudo a2enconf ssl-params

Paganahin ang module na HTTP / 2, na gagawing mas mabilis at mas matatag ang iyong mga site:

sudo a2enmod

Reload ang pagsasaayos ng Apache para sa mga pagbabago na magkakabisa:

sudo systemctl reload apache2

Ngayon, maaari naming patakbuhin ang tool na Certbot gamit ang plugin ng webroot at makuha ang mga file ng sertipiko ng SSL sa pamamagitan ng pag-type:

sudo certbot certonly --agree-tos --email [email protected] --webroot -w /var/lib/letsencrypt/ -d example.com -d www.example.com

Kung matagumpay na nakuha ang sertipiko ng SSL, i-print ng sertbot ang sumusunod na mensahe:

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-10-28. 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:

Ngayon na mayroon ka ng mga file ng sertipiko, i-edit ang iyong virtual virtual na pagsasaayos ng host tulad ng mga sumusunod:

/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

Gamit ang pagsasaayos sa itaas, pinipilit namin ang HTTPS at pag-redirect mula sa www hanggang sa di-www na bersyon. Mag-file ng malaya upang maiayos ang pagsasaayos ayon sa iyong mga pangangailangan.

Reload ang serbisyo ng Apache para sa mga pagbabago na magkakabisa:

sudo systemctl reload apache2

Maaari mo na ngayong buksan ang iyong website gamit ang https:// , at mapapansin mo ang isang berdeng icon ng lock.

Pag-update ng Auto I-encrypt ang SSL certificate

Ang mga sertipiko ng Encrypt ay may bisa sa loob ng 90 araw. Upang awtomatikong i-renew ang mga sertipiko bago mag-expire, ang package ng certbot ay lumilikha ng isang cronjob na tumatakbo nang dalawang beses sa isang araw at awtomatikong ina-renew ang anumang sertipiko 30 araw bago ito mag-expire.

Kapag na-renew ang sertipiko kailangan din nating i-reload ang serbisyo ng Apache. Idagdag ang --renew-hook "systemctl reload apache2" sa /etc/cron.d/certbot file upang magmukhang sumusunod:

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

Upang masubukan ang proseso ng pag-update, maaari mong gamitin ang switch ng sertbot --dry-run :

sudo certbot renew --dry-run

Kung walang mga pagkakamali, nangangahulugan ito na matagumpay ang proseso ng pag-update.

Konklusyon

Sa tutorial na ito, ginamit mo ang sertipiko ng client ng Let Encrypt, upang i-download ang mga sertipiko ng SSL para sa iyong domain. Nilikha mo rin ang mga snippet ng Apache upang maiwasan ang pagdoble ng code at na-configure ang Apache upang magamit ang mga sertipiko. Sa pagtatapos ng tutorial, nag-set up ka ng isang cronjob para sa pag-renew ng awtomatikong sertipiko.

apache ubuntu sabihin encrypt ang sertbot ssl

Ang post na ito ay isang bahagi ng serye na kung paano i-install-lampara-stack-on-ubuntu-18-04.

Iba pang mga post sa seryeng ito:

• Paano Mag-install ng Apache sa Ubuntu 18.04 • Paano Mag-set up ng mga Apache Virtual Host sa Ubuntu 18.04 • Ligtas na Apache sa Pag-encrypt sa Ubuntu 18.04 • Paano Mag-install ng MySQL sa Ubuntu 18.04 • Paano Mag-install ng PHP sa Ubuntu 18.04