Како подесити Апацхе ХТТП са ССЛ сертификатом?

Заштита Apache-a SSL/TLS сертификатом

Применом сертификата, конфигурисани домен или IP адреса постаће доступни путем HTTPS протокола.

Кренимо са постављањем.

У основи, следићемо ове кораке:

  • Компилација Apache HTTP 2.4.5 са SSL модулом
  • Набавка SSL сертификата
  • Конфигурација Apache-a за подршку SSL-a

Инсталирање Apache-a са SSL-ом из изворног кода

Да би SSL функционисао, Apache HTTP мора бити компајлиран са укљученим mod_ssl. За демонстрацију користићу CentOS 7 виртуелну машину са Digital Ocean.

  • Пријавите се на Linux сервер као root корисник и преузмите најновију верзију Apache-a.
wget http://www-us.apache.org/dist//httpd/httpd-2.4.25.tar.gz .

Напомена: Најновију верзију можете проверити овде.

  • Распакујте преузету датотеку помоћу команде gunzip.
gunzip -c httpd-2.4.25.tar.gz | tar xvf -
  • Сада би требало да имате нову фасциклу „httpd-2.4.25“.
  • Уђите у њу и покрените следећу команду за конфигурисање.
./configure --enable-ssl --enable-so

Напомена: Уколико користите свеж сервер, могуће је да ћете наићи на проблеме са APR, PCRE, OpenSSL. Водич за решавање проблема је доступан.

Проверите да нема грешака током процеса конфигурисања и инсталирајте Apache користећи команде make.

make
make install

Као и обично, уверите се да нема грешака током инсталације. Тиме сте успешно инсталирали Apache веб сервер са SSL подршком.

Набавка SSL сертификата

Постоји неколико начина за генерисање и добијање SSL сертификата који је потписан од стране сертификационог тела.

Уколико имплементирате SSL на интранет веб серверу, већина организација има интерни тим за издавање сертификата. У том случају је потребно да се обратите њима. Ипак, и даље је потребно да генеришете CSR (Захтев за потписивање сертификата) користећи OpenSSL.

Уколико, пак, желите да обезбедите URL адресу доступну на Интернету, можете купити сертификат од Verisign, GoDaddy, Namecheap, ZeroSSL, или добити БЕСПЛАТАН сертификат од Let’s Encrypt.

Let’s Encrypt је заједнички пројекат Linux фондације који нуди БЕСПЛАТНЕ SSL/TLS сертификате. Ја ћу користити Let’s Encrypt за добијање сертификата за мој домен – chandan.io

Постоји више метода за генерисање CSR-а, али најлакша коју сам пронашао је коришћење online алата „SSL FOR FREE„.

Унесите URL који желите да заштитите.

Верификујте власништво над доменом користећи једну од понуђених метода и преузмите сертификатне датотеке.

Добићете три датотеке које ћемо користити за конфигурисање Apache веб сервера.

  • кључ – Ваша датотека кључа коју не треба јавно делити.
  • Сертификат – стварни SSL сертификат за ваш домен.
  • ca_bundle – основни/средњи сертификат потписника.

Пребаците преузету датотеку на веб сервер. Требаће нам ускоро.

Apache SSL конфигурација

Последњи корак је конфигурисање Apache-a како би могао да опслужује захтеве путем HTTPS-a.

  • Пријавите се на Apache веб сервер.
  • Направите резервну копију датотеке httpd.conf (подразумевана локација /usr/local/apache2/conf/).
  • Отворите датотеку користећи vi едитор и проверите да ли mod_ssl модул и httpd-ssl.conf постоје и нису коментарисани.
LoadModule ssl_module modules/mod_ssl.so
Include conf/extra/httpd-ssl.conf

Датотеку httpd-ssl.conf ћемо користити за конфигурисање детаља сертификата. Потребно је да проверите да ли су присутни следећи параметри са тачним вредностима:

  • SSLCertificateFile – путања до .crt датотеке сертификата коју сте раније преузели.
  • SSLCertificateKeyFile – путања до приватне .key датотеке.
  • SSLCertificateChainFile – путања до ca_bundle.crt датотеке.

Савет: Можете направити нову фасциклу „ssl“ и чувати све датотеке сертификата у њој.

  • Направите резервну копију датотеке ако је потребно и користите vi едитор да је измените.
SSLCertificateFile "/usr/local/apache2/conf/ssl/certificate.crt"
SSLCertificateChainFile "/usr/local/apache2/conf/ssl/ca_bundle.crt"
SSLCertificateKeyFile "/usr/local/apache2/conf/ssl/private.key"

Затим треба да конфигуришете директиву „ServerName“. Обично је то име вашег домена/URL адресе.

ServerName chandan.io
  • Сачувајте датотеку и поново покрените Apache веб сервер.
cd /usr/local/apache2/bin
./apachectl stop
./apachectl start

На крају, уверите се да је ваш домен мапиран на новоконфигурисану IP адресу веб сервера. Након тога, покушајте да приступите вашем домену путем HTTPS протокола.

Као што видите, chandan.io је доступан путем HTTPS-а са сертификатом који сам конфигурисао.

Горе наведени кораци су кључни за постављање SSL сертификата. Пре лансирања у производњу, требало би да тестирате SSL/TLS веб сервер како бисте били сигурни да није изложен уобичајеним безбедносним пропустима.

Надам се да вам је ово дало представу о томе како да имплементирате SSL сертификат на вашем Apache веб серверу, тако да је ваш URL доступан путем HTTPS протокола.

Да ли вам се свидео чланак? Поделите га са другима!