ПредишенСледващото

Ако имате защитен уеб сървър, потребителите, вълни за безопасността на техните данни, могат да бъдат сигурни, че исканията са криптирани, така че техните данни е безопасно. Най-добрият начин да направите това е да използвате Apache 2, водещият Linux уеб сървър и Secure Sockets Layer, защитен протокол за пренос на данни. Transport Layer Security (TLS) SSL е развитие, но те работят почти идентичен. Аз ще се отнася само за SSL.

SSL - протокол за сигурна прехвърлянето на шифровани данни между уеб браузъра и уеб сървъра. В повечето случаи, сървър за удостоверяване преминава която позволява на клиента да се уверите, че е необходим сървър за него, а не обратното. Каквото и да е, когато връзката е установена, и двете страни са на сигурно място, защото само на клиента и сървъра да има достъп до ключа. Това работи в продължение на много въпроси, сървърът не се интересува кой е клиентът, докато той остава един и същ клиент за запитването. Ако те е грижа за удостоверяване на клиента, е възможно да се използва клиент SSL сертификати (или Htaccess, Kerberos или други подобни методи), но това няма да бъдат разглеждани в тази статия.

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

Протоколът SSL работи по следния начин:
1. Клиентът се свързва с уеб сървъра и предоставя списък на наличните кодове.
2. Сървърът избира най-силната шифър, който го поддържа, и на клиента, и изпраща сертификат с вашето име и ключ за шифриране, подписан от надежден сертифициращ орган (Certificate Authority, наричан - Калифорния), като Verisign.
3. Клиентът проверява удостоверението с CA. На практика, набор от Калифорния съхранява локално, така че може да бъде направено без контакт в реално време с Калифорния, и следователно по-бързо.
4. Клиентът изпраща обратно на случайни числа, криптирана с публичен ключ на сървъра. Само клиентът знае този номер, а само на сървъра може да го разшифровате (с помощта на частния ключ); това е мястото, където сигурността на участието на трети страни.
5. сървъра и случайни номера на клиент използва за генериране на ключа на съдържанието, която се използва за предаване на данни.

Ние искаме да го направи от страна на клиента възможно най-прозрачни, за да стане сделката толкова лесно, колкото е възможно.

Първата стъпка - създаването на сертификата. Можете да създадете сертификат с паролата или без него. Основният недостатък на използването на паролата е фактът, че тя трябва да се въвежда всеки път, сървърът да започне. Поради това не може да се управлява без надзор или автоматично по време на зареждане, като след спиране на тока. В зависимост от настройките си, тя може да бъде от значение за вас или не.

Теоретично, използването на предимство парола yavlyatsya повишаване на защитата. Въпреки че, на практика, паролите не правят толкова много защита. Ако някой може да чете или да копирате частния ключ, а след това вече има достъп до системата и възможността да получите парола, например, с помощта на програма като записване на натиснатите клавиши. Парола защита срещу скрипт дечица, но не и сериозен хакер. Може би за повечето хора това няма смисъл да го използвате.

За целите на изпитванията, или за малка локална мрежа, можете да създадете самостоятелно подписан сертификат. Можете да направите това, като използвате следната команда:

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

Независимо от това, разбира се, е по-добре да се използва сертификат, подписан от надежден сертифициращ орган, като Verisign (които имат най-голям пазарен обхват), или по-малка организация. Повечето браузъри вече имат набор от предварително инсталиран сертификат, заверен от ТЗ, който проверява сертификата на вашия уеб сървър, когато клиентът се свързва. Това намалява броя на проблеми за крайния потребител и не потвърди легитимността на вашия сайт.

За да получи сертификат, подписан от ТЗ, трябва първо да създадете ключ искане чифт и сертификат:

ключов сървър (server.key файл, който отново трябва да се чете само от корен) остава на своя уеб сървър; поискване (файл www.example.com.csr) се изпраща на CA. Можете да се обадите досието на заявката, както искате, но като го нарече с неговото име на домейн, можете да опрости задачата за CA.

Следващата стъпка ще бъде да изпратите този файл, за да www.example.com.csr CA, с плащането. Те имат нужда да си го върне бързо, ако сте предоставили цялата необходима информация в заявката си. Избраната CA ще обясни своите действия на вашия сайт. Може да се наложи да промените формата на файла на РЕМ, но в случай на Verisign, това не би трябвало да се направи.

Когато получите файл обратно в формат PEM, преименувате да server.crt (това не е абсолютно необходимо, но тя се вписва с Apache) и проверете:

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

Сега инсталирате ключ (генерира по-горе като server.key) и сертификат (server.crt) в / и т.н. / apache2 / SSL, или вашия указател предпочитан настройки, ако тя е по-различно. Както бе посочено по-горе, че е важно да се уверите, че server.key може да се чете само от корен, а сертификата на сървъра може да се чете за света, но притежавани и писане от само корен.


Съставяне на Apache с SSL.

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

За по-голямата част от хората, най-добрият начин за инсталиране и управление Apache2 - модули, получени по програма за управление на пакетите на вашата дистрибуция. Apache2 в Debian идва с SSL модул, но това не е активирана по подразбиране. За да го активирате, трябва да изпълни командата: a2enmod SSL и рестартиране на уеб сървъра.

За да направите това, добавете линия

Вашата /etc/apache2/apache2.conf (Този файл може да се нарече и httpd.conf). Вие трябва да го оправя, на подходящо място mod_ssl.conf файла. След това рестартирайте уеб сървъра.

Ако искате да компилирате Apache2 от изходен код, в зависимост от това какви опции сте използвали преди това, може да е вече или не може да има SSL поддръжка. Проверете тази команда apache2 -l. Ако трябва да компилирате, стартирайте ./configure с всички възможности, които сте използвали преди, добавят към нея --enable-SSL и --enable-setenvif (последното е необходимо за съвместимост с капризите на Internet Explorer). След това да го инсталирате, както обикновено, с помощта на грим; правят инсталиране и проверка на правата за достъп.


Конфигуриране на Apache с SSL.

Следващата стъпка е да изберете Apache2. Следните инструкции ще доведе до стартирането на сървъра като сигурен (порт 443), а като обикновен уеб сървър (порт 80). На първо място, трябва да конфигурирате сървъра, за да слушате на двете пристанища. Или редактират /etc/apache2/ports.conf (в Debian, той влиза в apache2.conf) или редактиране /etc/apache2/apache2.conf, включително линии:

След това редактирате / и т.н. / apache2 / сайтове, поддържащи / моятсайт да използва SSL настройки. Разделянето редовен и сигурен сървър, използвайки VirtualHost - най-лесният вариант в условия на работа. Всички настройки извън секциите VirtualHost (например определяне на ServerAdmin) ще бъдат използвани и за двете (и всеки друг) VirtualHost. Добавете следното към конфигурационния файл:

Няколко забележки за тази конфигурация:
- SSLEngine трябва да е включен, което показва, че сървърът използва SSL.
- DocumentRoot определя основната директория на виртуален хост. Това означава, че можете да разделите съдържанието от обичайните сейфа.
- искания SSLRequireSSL използващи SSL (на този виртуален сървър), който е, потребителят не може да се свърже към хоста, като се използва конвенционален HTTP заявка. Ето защо ние сме разделени сигурния и редовни.
- SSLProtocol забраните всички протоколи, различни от TLS v1.0 и SSL v3.0. всичко ще работи добре за модерни браузъри.
- SSLCipherSuite настроен да използва само висока и средна шифри. SHA1 се счита за по-сигурно от MD5, така че той да бъде избран.
- SSLCertificateFile SSLCertificateKeyFile и показва местоположението на сертификата и файловете с ключове.
- SSLVerifyClient трябва да се зададе като "няма", ако не използвате удостоверяване на клиента.

За да стартирате редовен сървър на порт 80, добавете следното конфигурационния файл:

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

Създаване на основната страница index.html в основната директория на вашия сървър, ако не разполагате съдържание там.

Ако това не работи, както се очаква, първо проверете дали вашият сървър работи с генерала, като се използват PS-а | Впиши Apache. Ако не се върне резултат, опитайте се да рестартирате сървъра и проверете съобщението за грешка на конзолата.

Също така проверете дали разрешения за файла на сертификата и ключа са инсталирани правилно (вж. По-горе), както и правото на тест HTML-файлове и директорията, в която се намира.

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

Ако проблемът не е в SSL връзка, удобен инструмент ще s_client, който е диагностичен инструмент за решаване на проблеми в TLS / SSL свързвания. Средна употреба него: / ЮЕсАр / хамбар / OpenSSL s_client -connect Localhost: 443. Също така, има и много други опции, които можете да научите от документацията. Ако получите съобщение за грешка, това трябва да ви помогне при идентифицирането на проблема.

Честито! Сега можете да имате работеща защитен сървър със сертификат, автоматично проверява от повечето съвременни браузъри.

Подкрепете проекта - споделете линка, благодаря!