Създаване на Apache SSL сертификат на Debian 8

Оферта от 8host.com

debian

Този урок ще ви покаже как да създадете SSL сертификат в Debian 8 и как да конфигурирате уеб сървъра на Apache да поддържа този сертификат. В резултат на това сървърът ще поддържа HTTPS връзки.

SSL се основава на асиметричен алгоритъм за криптиране, който изисква чифт публичен и частен ключ. Има сертифициращи органи (CA), които могат да удостоверят такъв SSL сертификат, което гарантира сигурността на връзката. Можете обаче да създадете самоподписан сертификат, който не изисква валидиране от трета страна.

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

Изисквания

За да следвате инструкциите, ще ви трябва:

  • Свеж Debian 8 сървър;
  • Не-root потребител със sudo права (подробности можете да намерите тук);
  • Предварително инсталиран OpenSSL пакет; като правило този пакет е инсталиран по подразбиране, така че просто трябва да го актуализирате:

sudo apt-get update sudo apt-get upgrade openssl

За тестване може да ви е необходим втори компютър:

  • openSSL;
  • Друг Linux сървър или Unix-подобна локална система (Mac, Ubuntu, Debian и др.).

Стъпка 1 Инсталиране на Apache

Apache може да се инсталира с помощта на вградения мениджър на пакети apt-get, което прави управлението на пакетите и инсталационния процес много по-лесно.

За разлика от останалитеLinux дистрибуции, Debian 8 не идва с предварително инсталиран sudo. Вижте споменатото по-горе ръководство за инструкции относно актуализирането на apt-get и инсталирането на пакета sudo.

За да инсталирате Apache, изпълнете:

sudo apt-get инсталирайте apache2

2: Активирайте SSL модула

Сега трябва да конфигурираме уеб сървъра да поддържа SSL.

За да направите това, трябва да активирате модула Apache:

sudo a2enmod ssl

Стандартният сайт на Apache идва с удобен шаблон за активиране на SSL, така че следното показва как да активирате стандартния сайт.

sudo a2ensite по подразбиране-ssl

Рестартирайте Apache, за да актуализирате настройките:

sudo услуга apache2 презареждане

Стъпка 3: Създайте самоподписан SSL сертификат

Първо трябва да създадете отделна директория за съхранение на личния ключ и сертификата.

sudo mkdir /etc/apache2/ssl

След това трябва да поискате нов сертификат и да го подпишете.

Генерирайте сертификат и частен ключ, като използвате командата по-долу.

  • Флагът дни задава периода на валидност на сертификата (в този случай сертификатът ще бъде валиден 365 дни);
  • Флагът keyout указва пътя до ключа;
  • Изходящият флаг указва пътя до сертификата.

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/ apache.key -out /etc/apache2/ssl/ apache.crt

Например отговорите може да изглеждат така:

Интерактивно Ще бъдете помолени да въведете информация, която ще бъде включена във заявката ви за сертификат. Това, което ще въведете, е това, което се нарича отличително име или DN. Има доста полета, но можете да оставите някои празни За някои полета ще има стойност по подразбиране, Ако въведете „.“, полето ще останепразно. ——- Име на държавата (код с 2 букви) [AU]: САЩ Име на щат или провинция (пълно име) [Някакъв щат]: Ню Йорк Име на населено място (напр. град) []: NYC Име на организация (напр. компания) [Интернет W >Моята компания Име на организационна единица (напр. секция) []: Тест на SSL сертификат Общо име (напр. FQDN на сървъра или ВАШЕТО име) []: example.com Имейл адрес []: [email protected]

Променете разрешенията за файла, за да ограничите достъпа до частния ключ и сертификата:

sudo chmod 600 /etc/apache2/ssl/*

Забележка : За повече информация относно привилегиите вижте ръководството за основни привилегии на Linux.

Сега сертификатът и личният ключ са готови за използване.

Стъпка 4: Конфигурирайте Apache да поддържа SSL

Сега трябва да настроим стандартен виртуален хост Apache, който ще използва SSL сертификат и ключ. Това ще позволи на сървъра да обработва HTTPS заявки вместо HTTP (за стандартен сайт).

sudo nano /etc/apache2/sites-enabled/default-ssl.conf

Намерете секцията, която започва с линия, и направете следните промени в нея:

  • Добавете реда Име на сървъра под реда ServerAdmin, в него посочете домейна или IP на сървъра:

ServerAdmin webmaster@localhost ServerName example.com :443

  • Намерете следните два реда и въведете правилните пътища до сертификата и ги въведете:

SSLCertificateFile /etc/apache2/ssl/apache.crt SSLCertificateKeyFile /etc/apache2/ssl/apache.key

В резултат на това конфигурационният файл трябва да изглежда така:

ServerAdmin webmaster@localhost ServerName example.com :443 DocumentRoot /var/www/html . . . SSLEngine на . . . SSLCertificateFile /etc/apache2/ssl/apache.crt SSLCertificateKeyFile /etc/apache2/ssl/apache.key

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

За да актуализирате настройките на уеб сървъра, рестартирайте Apache.

sudo услуга apache2 презареждане

Забележка : Повече информация за виртуалните хостове можете да намерите в това ръководство.

5: Тестване на настройката

И накрая, трябва да тествате SSL връзката.

Проверката може да се извърши с:

  • Локална Unix-подобна система
  • друг сървър
  • същия сървър

Препоръчително е да проверите настройката с външна система, тъй като това потвърждава, че сайтът е обществено достояние.

Отворете HTTPS връзка на порт 443.

openssl s_client -свържете вашия_сървър_ip :443

В средата на изхода (след ключа) потърсете следните редове:

—- SSL ръкостискането е прочело 3999 байта и е записало 444 байта —- . . . SSL-сесия: . . .

Разбира се, числата може да се различават, но този ред показва, че SSL сертификатът е инсталиран успешно.

За да излезете, натиснете CTRL+C.

Можете също да посетите сайта в браузър, като използвате HTTPS във връзката (например https://example.com). Браузърът ще покаже предупреждение, че на сертификата не може да се вярва (това е нормална реакция, тъй като не е проверен от доверен сертифициращ орган). Прегледайте сертификата и проверете дали всички подробности съответстват на информацията, посочена в раздел 3.

Сървърът Apache вече е защитен със SSL сертификат.