Тази статия е част от серията Ръководство за Apache Server:

  • Осигуряване на Apache на Ubuntu - Част 1
  • Осигуряване на Apache на Ubuntu - Част 2
  • Оптимизиране на ефективността на Apache - Част 1
  • Оптимизиране на ефективността на Apache - Част 2
  • Настройване на Apache на
  • Настройване на IP и Port-базирани Virtualhost в Apache
  • Как да настроите паролата за защита на уеб директорията в Apache
  • Настройване на Apache Server със SSL поддръжка на Ubuntu
  • Създаване на Fail2ban за защита на Apache от DDOS атака
  • Как да настроите Webdata с Apache на Ubuntu
  • Следете уеб сървъра на Apache, използвайки Mod_status
  • Как да защитите срещу DDoS с Mod_evasive на Apache Server

SSL е известен също като протокол Secure Socket Layer. Той е създаден от Netscape за осигуряване на транзакции между уеб сървъри и браузъри. Протоколът за SSL използва сертифициращ орган (CA), за да идентифицира единия край или двата края на транзакциите. Всички съобщения, изпратени през обикновени HTTP връзки, са в обикновен текст и всеки хакер може да има достъп до връзката между вашия браузър и уебсайта и да чете чувствителна информация като данни за кредитни карти или номера на вашата социална осигуровка. SSL се използва, за да криптира деликатната информация, изпратена през интернет, така че информацията става нечетлива за всички.

Собствен сертификат срещу търговски сертификат

Самоподписаният сертификат се подписва от неговия собственик. Той обикновено се използва за тестване на локални сървъри и среда за разработка. Въпреки че сертификатите, подписани самостоятелно, осигуряват същото ниво на сигурност между уебсайта и браузъра, повечето уеб браузъри винаги ще показват съобщение за предупреждение за сигурност, че сертификатът на уебсайта е самоподписан и не може да бъде надежден, тъй като той не е подписан от Сертифициращия орган.

Търговският сертификат е упълномощен сертификат, издаден от доверен сертифициращ орган. Подписаният сертификат се използва най-вече в производствена среда.

В тази статия ще обясня как да създадете собствен подписан SSL сертификат за Apache, който ще ви позволи да шифровате трафика към вашия уеб сървър на Apache.

Конфигуриране на Apache за поддръжка на SSL

По подразбиране Openssl е инсталиран в Ubuntu 14.04. Този модул осигурява SSL поддръжка за Apache. Той е деактивиран по подразбиране, така че първо трябва да активирате SSL модула.

Можете да активирате SSL модула, като стартирате:

 sudo a2enmod ssl 

След като активирате SSL, ще трябва да рестартирате услугата Apache, за да бъде разпозната промяната.

 sudo услуга apache2 рестартиране 

Създаване на самоподписано удостоверение

Първата стъпка е създаването на сертификат. За целите на тестването или за малки LAN трябва да генерирате частен ключ (ca.key) с 2048-битово криптиране.

За да направите това, изпълнете:

 sudo openssl genrsa -out ca.key 2048 

След това генерирайте заявка за подписване на сертификат (ca.csr), като използвате следната команда:

 sudo openssl req -nodes -new -key ca.key -out ca.csr 

Накрая генерирайте самоподписан сертификат (ca.crt) от типа X509, валиден за 365 клавиша.

 sudo openssl x509 -рек - дни 365 - в ca.csr -signkey ca.key -out ca.crt 

Създайте директория, в която да поставите създадените от нас сертификати.

 sudo mkdir / etc / apache2 / ssl 

След това копирайте всички сертификационни файлове в директорията "/ etc / apache2 / ssl".

 sudo cp ca.crt като.key ca.csr / etc / apache2 / ssl / 

Конфигуриране на Apache за използване на SSL сертификата:

Сега всички сертификати са готови. Следващото нещо, което трябва да направите, е да настроите Apache, за да покажете новия сертификат.

За тази цел трябва да активирате SSL поддръжката във файла за виртуален хост на Apache по подразбиране, намиращ се в директорията /etc/apache2/sites-enable/ .

Можете да направите това, като редактирате конфигурационния файл на виртуален хост хост на Apache.

 sudo nano /etc/apache2/sites-enable/000-default.conf 

Коментирайте всички линии, като добавите "#" пред всеки ред и добавете следните редове:

 ServerAdmin webmaster @ localhost DocumentRoot / var / www / html ErrorLog $ {APACHE_LOG_DIR} /error.log CustomLog $ {APACHE_LOG_DIR} /access.log комбинирани SSLEngine на SSLCertificateFile /etc/apache2/ssl/ca.crt SSLCertificateKeyFile / etc / apache2 / ssl /ca.key 

Запишете и затворете файла и рестартирайте Apache.

 sudo /etc/init.d/apache2 рестартирайте 

Това трябва да даде възможност на новия Ви виртуален хост, който ще използва криптирано съдържание, използвайки създадения от вас SSL сертификат.

Тестване на сървър на Apache (HTTPS):

За да проверите уеб сървъра на Apache (HTTPS), отворете уеб браузъра си и напишете вашия IP адрес на сървъра (с "https: //", например: "https://192.168.1.227").

В браузъра ви трябва да се появи грешка и трябва ръчно да приемете сертификата. Съобщението за грешка се показва, защото използваме сертификат, подписан от автора, вместо сертификат, подписан от сертифициращ орган, който браузърът има доверие, и браузърът не може да потвърди самоличността на сървъра, към който се опитвате да се свържете. След като добавите изключение към проверката на самоличността на браузъра, трябва да видите тестова страница за Ubuntu за новия си защитен сайт.

заключение

Сега сте активирали SSL на вашия Apache сървър. Това ще ви помогне да осигурите комуникация между вашия Apache сървър и клиентите. Ако искате да хоствате на публичен сайт с SSL поддръжка, трябва да закупите сертификат за SSL от надежден сертифициращ орган.