The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Установка и настройка Apache и подписанных SSL-сертификатов (apache ssl cert freebsd)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: apache, ssl, cert, freebsd,  (найти похожие документы)
From: Бульба Сергей <bas@vulcan.ru.> Newsgroups: email Date: Mon, 9 Nov 2008 17:02:14 +0000 (UTC) Subject: Установка и настройка Apache и подписанных SSL-сертификатов От автора В связи с тем, что иногда приходится изучать кучу документации, тестировать и пробовать различные подходы, то тратится куча времени. Очень часто приходится бороздить просторы OpenNET'а, поэтому я решил, что накопленный опыт целесообразно выкладывать именно сюда, чтобы и мне было проще и оно наверное ещё кому пригодится. Так же очень часто статьи вроде бы уже об изученных вещах очень удачно переписываться и дополняются под новые версии программного обеспечения. Хотелось бы добавить, что так как статья писалась по горячим следам мне необходимых вещей, то и описывать я буду свой пример, т.е. разговаривать о виртуальных примерах и ситуациях я не намерен. На основе данной статьи можно заточить настройку web-сервера под свои нужды без особых проблем. Введение Со временем наступает момент, когда трафик от сервера к клиенту необходимо (или хотелось бы) шифровать. В моём случае это потребовалось для самописной системы, в которой проскакивали логины и пароли пользователей. Поэтому было решено использовать связку apache + mod_ssl. Используемое ПО
  • FreeBSD 7.0
  • Apache 2.2.9 Установка Apache Не люблю изобретать велосипед и выдумывать, если что-то придумано до меня, поэтому в установке ПО во FreeBSD я использую систему портов. Так же местоположение конфигов я не изменяю и оставляю по умолчанию. Устанавливаем Apache: # cd /usr/ports/www/apache22 # make install clean При установке Apache первый раз появится диалоговое окно с выбором модулей. Необходимо проверить, что модуль SSL выбран (находится почти в самом низу). Остальные модули можно включить/отключить под свои нужды. После мы нажимаем "Ok" и ждём окончания компиляции и установки. Создание SSL-сертификатов После установки web-сервера и перед его конфигурированием нам необходимо создать ssl-сертификаты. Создавать их мы будем в папке с конфигами Apache. Для создания сертификатов нам потребуется ряд данных. Первое, что нам потребуется - это пароль. Как всегда придумываем что-нибудь длинное и сложное. В нашем примере пусть это будет "agu7Lirithiunee". # cd /usr/local/etc/apache22 # openssl genrsa -des3 -rand /dev/random -out server.key 1024 # openssl rsa -in server.key -out server.pem # openssl req -new -key server.key -out server.csr # openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt При выполнении третьей команды нам необходимо будет заполнить небольшую анкету. По сути, можно постоянно нажимать Enter, но есть поля, которые заполнить всё же необходимо. Я бы рекомендовал не лениться, а заполнять все поля. Так же необходимо заметить, что файл server.csr нам потребуется для получения подписанного сертификата. Common Name (eg, YOUR name) []: www.domain.ru - заполняем полным доменным именем нашего сервера, для которого мы получаем сертификат. Email Address []: user@domain.ru - указываем свой адрес электронной почты. Дополнительные (extra) поля не заполняйте! По завершению у нас будет создано 4 файла: server.crt, server.csr, server.key, server.pem. По сути, на этом можно и остановиться: web-сервер уже сможет работать по ssl, но мы столкнёмся со следующими проблемами: 1) Полученные сертификаты не являются подписанными, поэтому браузеры будут на них ругаться, что в свою очередь приведёт к тому, что пользователю потребуется выполнять ряд действий. Так как не все пользователи поймут, что от них надо они попросту забьют тревогу, закроют страницу и всё. 2) Вполне возможно, что нам просто необходимы валидные сертификаты, поэтому нам не подойдут неподписанные, так как они не будут отвечать всем требованиям по безопасности. Выдачей подписанных сертификатов занимается ряд сервисов в интернете. К счастью есть и такие, которые дают подписанные сертификаты бесплатно:
  • http://www.freessl.su - сроком на 1 месяц
  • http://www.instantssl.com/ssl-certificate-products/free-ssl-certificate.html - сроком на 3 месяца 1. Зайдя на http://www.instantssl.com/ssl-certificate-products/free-ssl-certificate.html нажимаем на кнопку Get It Free Now! 2. В предложенной форме в первое поле мы копируем содержимое файла с расширением CSR (копируем полностью). 3. Во втором поле выбираем пункт Apache-ModSSL. 4. Нажимаем Next. 5. Выбираем, на какой адрес высылать сертификаты. 6. Нажимаем Confirm & Continue. 7. В следующей форме заполняем все поля, выделенные красным цветом. Особое внимание обратите внимание на Admin Contact email - это наш адрес, на который придут уведомления и сертификаты. Так же нас будут интересовать поля из раздела Choose your Admin Contact's Management Details - это наши логин и пароль в данной системе. 8. Нажимаем Agree & Continue. После этого к нам на e-mail придёт уведомление, что мы зарегистрированы и что на адрес администратора домена выслан запрос на подтверждение. Так как у меня стоит перенаправление со служебных адресов (admin, root, webmaster), то я получаю сразу оба письма. В одном из них будет ссылка на форму подтверждения и код активации. Когда мы введёт оставшиеся данные к нам на почту придёт архив с двумя сертификатами, которые мы должны скопировать к ранее созданным сертификатам. После чего мы можем продолжить конфигурирование web-сервера. Конфигурирование Apache Для запуска Apache с SSL добавляем следующие строки в конфиги: # echo "apache2_enable=YES" >> /etc/rc.conf # echo "apache2ssl_enable=YES" >> /etc/rc.conf # echo "accf_http_load=YES" >> /boot/loader.conf # kldload accf_http Третья строка необходима для того, чтобы при запуске не появлялась ошибка: [warn] (2)No such file or directory: Failed to enable the 'httpready' Accept Filter Четвёртая строка необходима для того, чтобы не перегружать сервер, так как FreeBSD позволяет динамически подгружать/выгружать модули ядра. Для проверки, что модуль загрузился смотрим вывод команды kldstat. Проводим стандартную настройку httpd.conf: 1) Указываем e-mail админа: ServerAdmin webmaster@domain.ru 2) Указываем имя сервера и не забудьте раскомментировать строчку: ServerName www.domain.ru:80 3) Раскомментируем поддержку виртуальных хостов: Include etc/apache22/extra/httpd-vhosts.conf 4) Раскомментируем поддержку ssl: Include etc/apache22/extra/httpd-ssl.conf После этого приступим к конфигурированию httpd-ssl.conf: 1) Для того, чтобы запуск web-сервера выполнялся автоматически и не останавливался на запрос пароль ssl-сертификатов, то заменяем SSLPassPhraseDialog builtin на SSLPassPhraseDialog exec:/usr/local/etc/apache2/echo 2) Изменяем секцию виртуального хоста под свои нужды. В конфиге много комментариев, поэтому я приведу только то, что должно быть. <VirtualHost a.b.c.d:443> DocumentRoot "/usr/local/www/apache22/data" ServerName www.domain.ru:443 SSLEngine on SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL SSLCertificateFile /usr/local/etc/apache22/www_domain_ru.crt SSLCertificateKeyFile "/usr/local/etc/apache22/server.key" SSLCACertificateFile /usr/local/etc/apache22/www_domain_ru.ca-bundle <FilesMatch "\.(cgi|shtml|phtml|php)$"> SSLOptions +StdEnvVars </FilesMatch> <Directory "/usr/local/www/apache22/cgi-bin"> SSLOptions +StdEnvVars </Directory> BrowserMatch ".*MSIE.*" \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 </VirtualHost> a.b.c.d - IP-адрес виртуального хоста. Обратите внимание на директивы SSLCertificateFile и SSLCACertificateFile - это как раз те директивы, которые указывают на полученные и подписанные ssl-сертификаты. 3) Создаём скрипт echo в папке /usr/local/etc/apache22, который будет отвечать Apache на запрос пароля сертификатов следующего содержания: #!/bin/sh /bin/echo agu7Lirithiunee Меняем владельца и права доступа: # chown root:wheel /usr/local/etc/apache22/echo # chmod 700 /usr/local/etc/apache22/echo 4) Создаём обычный виртуальный хост. Для этого редактируем конфиг httpd-vhosts.conf. Примеры виртуальных хостов я комментирую, так как пользуюсь минимальным набором директив. NameVirtualHost a.b.c.d:80 <VirtualHost a.b.c.d:80> DocumentRoot "/usr/local/www/apache22/data" ServerName www.domain.ru </VirtualHost> Важное дополнение. В связи с тем, что сертификаты подписываются на конкретный домен, то у нас будет проблема, в случае нескольких алиасов для сервера или если сервер доступен с локальной сети под одной адресацией/алиасом, а с интернета - под другими. Самый верный способ - сделать перенаправление. Способов сделать много, покажу тот, который использует файл .htaccess и mod_rewrite. 1) Открываем для редактирования конфиг httpd-vhosts.conf. 2) Разрешаем опцию AllowOverride, для этого меняем содержимое виртуального хоста на ниже следующее: NameVirtualHost a.b.c.d:80 <VirtualHost a.b.c.d:80> DocumentRoot "/usr/local/www/apache22/data" ServerName www.domain.ru <Directory /usr/local/www/apache22/data/> AllowOverride All </Directory> </VirtualHost> 3) Далее нам необходимо создать файл .htaccess в директории нашего сайта содержащий такой код: RewriteEngine on Redirect / https://www.domain.ru/ Не наступите на те же грабли, что и я как-то. Если у вас защищаемый контент находится по адресу http://www.domain.ru/dir, то всё равно строчка редирект будет выглядить как написано выше. Редактирование конфигов завершено. Теперь мы можем запустить Apache: [root@domain /usr/local/etc/apache22/]# /usr/local/etc/rc.d/apache22 start Performing sanity check on apache22 configuration: Syntax OK Starting apache22. После этого заходим через браузер на страницу http://www.domain.ru и видим It works! Стандартный протокол передачи работает. Для проверки ssl заходим по адресу https://www.domain.ru. В зависимости от браузера должен появится или замочек, или название сертификата, при клике на который будет писаться, что "подключение безопасно" или "подключение использует шифрование". Источники
  • https://www.opennet.ru/base/sec/ssl_freebsd.txt.html
  • https://www.opennet.ru/base/net/apache_mod_ssl.txt.html
  • https://www.opennet.ru/base/sec/apache_ssl_certification.txt.html
  • http://www.lissyara.su/?id=1284
  • http://httpd.apache.org/docs/2.2
  • http://httpd.apache.org/docs/2.2/ssl/
  • http://httpd.apache.org/docs/2.2/mod/mod_ssl.html
  • http://yandex.ru/yandsearch?clid=9582&text=apache22+ssl+freebsd

  • << Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

    Обсуждение [ Линейный режим | Показать все | RSS ]
  • 1.1, abigor (?), 12:41, 11/11/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    спасибо автору, сам до этого догнал, но это реально самая полная дока, даж подойдет и не для подписанных сертификатов
     
  • 1.2, Andrew Kolchoogin (?), 12:55, 11/11/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Вот мне интересно.

    Ну почему афтар не сходил на cacert.org -- там сертификаты совершенно бесплатно на год подписывают...

    И когда же, наконец, афтары подобных статей поймут, что для того, чтобы браузеры не ругались на криво сгенерированный сертификат, ТАК генерировать их нельзя ни в коем случае?

    Что надо сначала сгенерировать самоподписанную пару ключей, которая будет Certificate Authority, публичный ключ которой предлагать скачать на собственном сайте, а потом уже сгенерировать пару ключей для сервера, открытый ключ из которой подписать сгенерированной выше CA?

    И что, наконец, существует TinyCA, которая все это делает GUI'ней (что ЗНАЧИТЕЛЬНО понятнее для людей, близких к Web'у, но далеких от криптографии)?

    Вот какая ценность этой статьи? Показать, как хорошо афтар знает ключи командной строки OpenSSL, что ли?

     
     
  • 2.3, Аноним (-), 13:25, 11/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    > Что надо сначала сгенерировать самоподписанную пару ключей, которая будет Certificate Authority, публичный ключ которой предлагать скачать на собственном сайте, а потом уже сгенерировать пару ключей для сервера, открытый ключ из которой подписать сгенерированной выше CA?

    Список команд для генерации в студию, пожалуйста.

     
     
  • 3.13, Dyr (??), 21:34, 11/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >> Что надо сначала сгенерировать самоподписанную пару ключей, которая будет Certificate Authority, публичный ключ которой предлагать скачать на собственном сайте, а потом уже сгенерировать пару ключей для сервера, открытый ключ из которой подписать сгенерированной выше CA?
    >
    >Список команд для генерации в студию, пожалуйста.

    Ну вот, например:
    #Create CA:
        openssl req  -new -x509 -days 3652 -sha1 -newkey rsa:1024 -config openssl.cnf -keyout private/CA.key -keyform PEM -out certs/CA.crt -outform PEM

    #Convert to PKCS#12 (for export to a Windows PC):
      cat certs/CA.crt private/CA.key > private/CA-all.pem
      openssl pkcs12 -export -in private/CA-all.pem -out certs/CA.p12
      rm -v private/CA-all.pem

    #Create signing request from web server:
        openssl req -new -sha1 -newkey rsa:1024 -nodes -keyout www.name.key -out requests/www.name.req

    #Create client certificate from sign request at CA:
        openssl ca -policy policy_anything -extensions ssl_server -out newcerts/www.name.pem -in requests/www.name.req
    or  (GENERAL):
    openssl ca -policy policy_anything -in mail.req -out certs/client.crt

    #Convert it to format for Apache:
        openssl x509 -in newcerts/www.name.pem -out newcerts/www.name.crt

    #Copy and install to Apache

    Накидал когда-то себе памятку. Всё замечательно работает.

     
  • 3.14, Александр (??), 10:27, 12/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >> Что надо сначала сгенерировать самоподписанную пару ключей, которая будет Certificate Authority, публичный ключ которой предлагать скачать на собственном сайте, а потом уже сгенерировать пару ключей для сервера, открытый ключ из которой подписать сгенерированной выше CA?
    >
    >Список команд для генерации в студию, пожалуйста.

    в составе пакета openssl есть скрипты (CA.pl и CA.sh - на выбор)
    с помощью которых очень легко сделать:
      а) самоподписанный CA сертификат
      б) ключи для сервера, подписанные этим CA сертификатом

    а чтобы всякий раз не отвечать на нудные вопросы при генерации ключей,
    загнать их по дефолту в openssl.cnf
    тогда можно просто жать ENTER на все вопросы, кроме commonName

     
  • 2.4, Аноним (-), 14:57, 11/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    и толку от сертификата от cacert.org если ни ff, ни opera, ни safari, ни ie не считают его авторизованным центром сертификации...
     
  • 2.6, User294 (ok), 16:59, 11/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    > И что, наконец, существует TinyCA, которая все это делает GUI'ней

    Все круто кроме того что:
    1) На серверах обычно гуя нет!
    2) Если кто не понимает как SSL работает да еще настолько что ему, тупенькому, гуй надо - так блондинкам по идее лучше не доверять генереж сертификатов.Иначе это не secure sockets а так, декоративная ширма.Извините конечно но секурити - это для профессионалов.Или хотя-бы для тех кто знает что делает.Иначе это профанация.Благодаря таким советчикам появляются сайты в духе региональных сайтов МТС - с самоподписанными SSL сертификатами протухшими по дате.Наверное тоже в гуе сгенерили и на этом и успокоились.Потому что близки к вебу но нули в криптографии.Так вот, таким "специалистам" от веба за такое управление сайтами - место в дворниках с подписью "Fired" в предыдущем месте работы.Потому что когда на сайте корпорации уровня МТС вдруг такая ж**а едва ли простительная хоумпаге Васи Пупкина - это, простите, позорище.

     
     
  • 3.11, Аноним (11), 19:04, 11/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Ты становишься скучным :(
    >Все круто кроме того что:
    >1) На серверах обычно гуя нет!

    Да нуууу .... с удивлением смотрю на стойки с RHEL4/5 ....
    А!! - ты наверно о финдас-сервер2008?

    >2) [ словесный понос поскипан - тут не ЛОР всё же]

    В статье рассказано как поставить сертификаты подписанные однм из СА ключи которой уже сидят в браузерах и не трубуют телодвижений. Но ты статью не читал - ведь так?

    PS: Я даже знаю почему ты _тут_ жгешь ... потому что на LORe (где это логично делать) тебя отЪЪЪЪЫмели как сопляка :) А Максим он терпеливый - не банит таких долго :)

     
  • 3.15, Аноним (11), 15:23, 12/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >1) На серверах обычно гуя нет!

    откройте для себя X11 over ssh и vnc :)

    >2) [skip] ... блондинкам по идее лучше не
    >доверять генереж сертификатов.

    спорное замечание... а блондинам - можно ? :)

    >Извините конечно но секурити - это для профессионалов.

    согласен.

     
  • 2.7, bas_kam (ok), 17:09, 11/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Про "cacert.org" - думаю Вы в курсе, что подобных сервисов больше, чем те 2, что я привёл и Вы дополнили?

    Про "И когда же, наконец, афтары подобных статей поймут" и "публичный ключ которой предлагать скачать на собственном сайте" - а Вы попробуйте по другой диагонали прочитать статью, я сделал особое внимание на то, что пользователь не будет это делать, а для того, чтобы браузеры не ругались этого достаточно.

    Про "Вот какая ценность этой статьи" - цели, цели у нас с Вами разные. Можно просто "забить" на ssl, можно сделать все сертификаты, создать свой корневой и заставить пользователей всё установить и принять. Я не буду рассказывать про то, что можно ведь рассматривать случаи предприятий с доменной сетью, где сертификат можно раздать, где можно обязать клиентов как Вы предложили зайти на сайт скачать и установить сертификат. Я лишь показал простой пример, на который некоторые люди, в том числе и я в своё время потратил время.

    За критику спасибо.

     

  • 1.5, User294 (ok), 16:51, 11/11/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > http://www.freessl.su - сроком на 1 месяц

    Это такой тонкий глум?Мина замедленного действия с таймаутом в месяц - это несерьезно: регулярно будет отваливаться сертификат.У буржуев есть более человеческие и бесплатные сервисы.И кроме того а этот ресурс является trusted ауторити в браузерах?

     
     
  • 2.8, bas_kam (ok), 17:13, 11/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Не глум, а примеры. Думаю, что показав, что есть такие сервисы и проблема решится уже каждый сам сможет найти более достойных кандидатов :)

    В данной статье я не собирался составлять список таких сервисов и проверять их trusted authority. Статья написано на примере использования второй ссылки - по ней проблем не замечено.

     
     
  • 3.10, User294 (ok), 18:55, 11/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Не глум, а примеры.

    Пример из разряда "как заиметь ежемесячный геморрой" - это готично.

    >проблема решится уже каждый сам сможет найти более достойных кандидатов :)

    Ну понятно что "... никто не любит чистить картошку", в смысле перебирать конторы такого плана =).Но мне кажется что советовать конторы подписывающие сертификаты на месяц - это как-то негуманно.Найдутся ведь бакланы которые их поюзают.А потом у сайтов будут "месячные" =).

    >В данной статье я не собирался составлять список таких сервисов и проверять
    >их trusted authority.

    Зря - вот как раз это было бы ну очень полезно и добавило бы совету ценности.А уж пнуть кофейников в сторону какой-нить правильной ауторити (это как раз один из наибольших геморроев) - было бы на вес золота.Глядишь кривых SSL сайтов бы поубавилось.

    >по ней проблем не замечено.

    Если вам верить - там геморрой ежеквартальный.Это конечно не такая жесть как "месячные" но обычно нормальные конторы выдают сертификаты на год.Вебмастеры тоже люди и у них есть зиллион других дел кроме как запоминать когда там у них SSL сертификат протухает.И чем реже он будет протухать - тем реже юзеры будут знакомиться с трехэтажной руганью их браузера на протухший сертификат.

     
     
  • 4.12, Аноним (11), 19:16, 11/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >>Не глум, а примеры.
    >Пример из разряда "как заиметь ежемесячный геморрой" - это готично.

    Русский езыка сцуко сложный? В статье чёрным по русскому сказано - на месяц!!!! Если кого то это не остановит - его и не нужно останавливать :) Ибо не разбивши носу ...

    [...]

    >но обычно нормальные конторы выдают сертификаты на год.

    Verisign и Thawte продают и на 2 года. Но не будь наивным чукотским юношей - все эти игрища с само-подписанными сертификатами - только от жадности. Имена контор дадены - сходи посмотри цены сам :(

    >Вебмастеры тоже люди и у них есть зиллион других дел кроме как запоминать когда там у них SSL сертификат протухает.

    Если купишь у вышеозначенных - они напомнят :) Им твоих денег надо.

    >- тем реже юзеры будут знакомиться с трехэтажной руганью их браузера
    >на протухший сертификат.

    Если по бизнесу нужен ссл для клиентов - то за такое делают Power Ё-boot :)

     
  • 4.16, Алексей Иванов (?), 13:59, 03/12/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >>В данной статье я не собирался составлять список таких сервисов и проверять
    >>их trusted authority.
    >
    >Зря - вот как раз это было бы ну очень полезно и
    >добавило бы совету ценности.А уж пнуть кофейников в сторону какой-нить правильной
    >ауторити (это как раз один из наибольших геморроев) - было бы
    >на вес золота.Глядишь кривых SSL сайтов бы поубавилось.

    http://www.freessl.su/ выпускает сертификаты Comodo.

    Сейчас есть 2 варианта:
    1. Без проверки организации сертификат выдается на 90 дней (аналог EssentalSSL).
    2. С проверкой организации - на 30 дней (аналог InstantSSL).

    >Если вам верить - там геморрой ежеквартальный.Это конечно не такая жесть как
    >"месячные" но обычно нормальные конторы выдают сертификаты на год.Вебмастеры тоже люди
    >и у них есть зиллион других дел кроме как запоминать когда
    >там у них SSL сертификат протухает.И чем реже он будет протухать
    >- тем реже юзеры будут знакомиться с трехэтажной руганью их браузера
    >на протухший сертификат.

    Можете купить сертификат и на год, и на 2 и на 5. Нет проблем - http://www.instantssl.su/

    Скоро добавим на сайт мультидоменные сертификаты, UCC.

    Если нужно что-то нестандартное - спрашивайте - мы как официальный партнер компании Comodo постараемся помочь вам.

    --
    С уважением,
    Алексей Иванов
    Генеральный директор
    ООО "ЛидерТелеком"

     

  • 1.9, Аноним (9), 17:30, 11/11/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Отлично!
    Таких статей сечас недостаток, так что в капилку!
     
  • 1.18, andrey (??), 14:22, 24/08/2013 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Да установить
     

    фильтрация участников | лог модерирования

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Спонсоры:
    Слёрм
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру