Поиск:

Ответ в темуСоздание новой темы Создание опроса
> SSL - это... объясните вкратце... 
:(
    Опции темы
Sufius
Дата 31.10.2004, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 332
Регистрация: 5.4.2004
Где: Питер

Репутация: нет
Всего: 1



Плиз... объясните вкратце, как его устанавливать, что для этого необходимо... и что оно даёт положительного...


--------------------
Помогите плиз с Ajax http://forum.vingrad.ru/forum/topic-208747.html
PM MAIL ICQ   Вверх
Opik
Дата 1.11.2004, 09:29 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Vingrad developer
Сообщений: 1918
Регистрация: 6.10.2004
Где: Рига

Репутация: нет
Всего: 55



Что такое SSL ?
Secure Sockets Layer (SSL) - это протокол, который защищает данные, пересылаемые между Web-браузерами и Web-серверами. SSL также предоставляет возможность, что данные, получаемые с узла Web, приходят именно с предполагаемого узла и во время передачи они не были искажены.
Любой Web-узел, чей адрес начинается с https, поддерживает SSL.
Чаще всего SSL применяется для защищенного обмена данными между Web-браузерами и Web-серверами. Основное назначение протокола защиты состоит в следующем:

Аутентификация сервера, гарантирующая пользователям, что они попали именно на тот узел Web, который хотели посетить.
Создание такого защищенного канала, что информация может передаваться между браузером и сервером в закодированном виде, с тем чтобы никто не смог исказить данные во время пересылки.
Пользователи Web могут распознать узел, который поддерживает SSL, по тому, что адрес Web-страницы начинается с https. Буква s, добавленная к знакомому HTTP - Hypertext Transfer Protocol, означает secure, то есть "защищенный".

Пользователям не нужно предпринимать никаких специальных действий, чтобы переключиться на SSL-соединение. Клиентская программа SSL встроена в браузер; большинство узлов просто требуют пароля или регистрационного номера для того, чтобы проверить подлинность пользователя.

Как SSL обеспечивает защищенное соединение? Защищенные соединения имеют критически важное значение для электронной коммерции, обеспечения защищенных интерактивных банковских операций, другого электронного бизнеса и всех транзакций, которые требуют определенного уровня безопасности.

Запрос на сеанс SSL
Пользователь посещает Web-узел, чей адрес начинается с https. Буква s показывает, что сервер для работы требует использования SSL.
Программная установка соединения
Браузер пользователя и сервер Web-узла начинают процесс обмена информацией, известный как handshake.
A. Сервер предоставляет браузеру свой открытый ключ, который был сертифицирован доверенным уполномоченным, таким фирмам как VeriSign или GeoTrust. Браузер проверяет сертификат сервера.
B. Сервер сообщает браузеру, сколько разрядов будет использоваться для шифрования или кодирования данных. Рекомендуется применять 128 разрядов.

Защищенное соединение
Обмен данными осуществляется через защищенный канал, который не позволяет злоумышленнику узнать или исказить информацию. Проверка целостности данных гарантирует, что данные не менялись в процессе пересылки от браузера к серверу или обратно. Как только данные появляются в браузере или на сервере, их защита больше не гарантируется.

Установка SSL на ApacheИтак, мне потребовалось прикрутить к моему WWW-серверу SSL. Ситуация осложнялась тем, что я не мог уйти с версии 1.3.9 Apache, так как под более новыми не компилировались нужные мне модули.

Сначала нам необходим сам Apache. Если у вас уже есть собранное и работающее дерево apache, то скопируйте его в безопасное место. Если нет, то вытяните самую последнюю версию Apache и разверните его.

Одновременно я собирал SSL для 1.3.12 и 1.3.9 версии Apache.

Для версии 1.3.9 необходимо взять следующие файлы.
http://www.modssl.org/source/mod_ssl-2.4.10-1.3.9.tar.gz
ftp://ftp.openssl.org/source/openssl-0.9.4.tar.gz


Для 1.3.12
ftp://ftp.modssl.org/source/mod_ssl-2.6.4-1.3.12.tar.gz
ftp://ftp.openssl.org/source/openssl-0.9.5a.tar.gz


Обратите внимание на различия в версиях.

Ниже я буду в скобках давать команды для 1.3.12. Все файлы лежат в одном каталоге. В нем же лежит дерево Apache.

gzip -d -c mod_ssl-2.6.4-1.3.9.tar.gz | tar xvf -
(gzip -d -c mod_ssl-2.6.4-1.3.12.tar.gz | tar xvf -)
gzip -d -c openssl-0.9.4.tar.gz | tar xvf -
(gzip -d -c openssl-0.9.5a.tar.gz | tar xvf -)

Этими командами мы распаковали все пакеты.
cd openssl-0.9.4
(cd openssl-0.9.5a)
./config
make

Отконфигурировали и собрали openssl, пакет, который и будет обеспечивать шифрование. Я рекомендую дать еще команду make install, после которой в /usr/local/ssl будет лежать это пакет.
cd ..
cd mod_ssl-2.6.4-1.3.9
(cd mod_ssl-2.6.4-1.3.12)

./configure --with-apache=../apache_1.3.9 --with-ssl=../openssl-0.9.4 --
prefix=/usr/local/apache

(./configure --with-apache=../apache_1.3.12 --with-ssl=../openssl-0.9.5a --
prefix=/usr/local/apache)

Этой командой мы включили mod_ssl в число собираемых модулей для Apache.

Теперь просто перейдите в каталог с Apache и скажите make – все необходимые модули будут собраны. Так же, если у вас раньше были собраны нестандартные модули, как у меня, они никуда не исчезнут и будут тоже вкомпилированы.
make certificate

Этой командой вы сгенерируете тестовые сертификаты, так что тут вы можете не особо думать над вопросами, можно просто давить Enter и вводить самые тупые пароли.
make install

Этой командой вы инсталлируете Apache в предназначенное для него место (/usr/local/apache).

Все, можете попробовать запустить apache командой
/usr/local/apache/bin/apachectl startssl

Если все запустилось (по команде ps ax|grep ht появляются httpd –DSSL), то можете себя поздравить – оно собралось. Попытка обратиться к хосту по протоколу https не даст вам ничего, так как сам Apache еще не сконфигурирован.

Итак, начнем конфигурировать, открываем в редакторе файл httpd.conf.
Listen 443
NameVirtualHost x.x.x.x:443

Эти команды указывают Apache слушать 443 порт (стандартный порт для https)и обслуживать на нем виртуальные серверы.

Теперь добавляем описание виртуального сервера.
<VirtualHost x.x.x.x:443>
SSLEngine on
SSLCertificateFile /usr/local/apache/conf/ssl.crt/server.crt
SSLCertificateKeyFile /usr/local/apache/conf/ssl.key/server.key
SSLLog /usr/local/apache/logs/ssl_engine_log
SSLLogLevel warn
SSLOptions +StdEnvVars

......
</VirtualHost>

Вместо многоточия напишите остальные директивы, которые обычно указываются в этом месте.

Теперь можно попробовать перезапустить сервер. Опс, при запуске Apache требует ввести парольную фразу. Конечно, первый раз такое можно пережить, но такое поведение неприемлемо для рабочего сервера.

Входим в каталог с ssl.key
cp server.key server.key.org
openssl rsa -in server.key.org -out server.key

Вводим пароль для дешифровки
chmod 400 server.key

И закрываем файл с отрытым ключом от посторонних глаз, все сервер больше не будет спрашивать пароль. На данном этапе уже должен работать SSL на полную катушку. То есть, набирая https://host вы должны получать запрос браузера на использование этого сертификата.

Для того, что бы в дальнейшем облегчить нам жизнь, подредактируем немного bin/apachectl файл. Исправим в нем условие start на startold, а startssl на просто start. Затем скопируем его в /etc/rc.d/init.d/httpd. Теперь по умолчанию при загрузке сервера, будет запускаться Apache с поддержкой SSL.


Установка SSL на сервере IIS
Средства SSL (Secure Socket Layer), используемые на веб-сервере, позволяют гарантировать целостность содержимого, проверять подлинность пользователей и шифровать передаваемые по сети данные.

Чтобы настроить SSL на веб-сервере

Для установления защищенных соединений по протоколу SSL веб-серверу требуется действительный сертификат сервера. С помощью мастера сертификатов можно либо создать файл запроса сертификата (по умолчанию NewKeyRq.txt) для отправки его службе сертификации, либо создать запрос к интерактивной службе сертификации, например к службам сертификации Microsoft. Дополнительные сведения см. в разделе Использование новых мастеров безопасности.
Если вы не используете Службы сертификации (Microsoft®) версии 2.0 для выпуска собственных сертификатов сервера, то необходимо, чтобы независимая служба сертификации утвердила ваш запрос и выдала вам сертификат сервера. Дополнительные сведения см. в разделе Получение сертификата сервера.

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

После получения файла сертификата сервера установите его с помощью мастера. В процессе установки осуществляется присоединение (или привязка) сертификата к веб-узлу.
Примечание. К одному веб-узлу может быть привязан только один сертификат сервера.

В оснастке Internet Information Services выделите веб-узел, который нужно защитить средствами SSL, и откройте окно его свойств. На вкладке Веб-узел в группе Идентификация веб-узла нажмите кнопку Дополнительно.
В диалоговом окне Дополнительная настройка веб-узлов, в группе SSL удостоверения данного веб-узла проверьте, что с IP-адресом используется порт 443, являющийся портом по умолчанию для защищенных соединений.
С одним веб-узлом можно использовать несколько портов SSL. Для настройки нескольких портов SSL нажмите кнопку Добавить под группой SSL удостоверения данного веб-узла.

На вкладке Безопасность каталога или Безопасность файла в группе Безопасные подключения нажмите кнопку Изменить.
В диалоговом окне Безопасные подключения включите на веб-сервере требование безопасного канала. Если вы требуете шифрование с 128-битным ключом, убедитесь, что обозреватели ваших пользователей поддерживают 128-битное шифрование. Дополнительные сведения см. в разделе Шифрование.
Важно! Из-за экспортных ограничений США или ограничений законодательства вашей страны, 128-битное шифрование может быть для вас недоступным. См. дополнительную информацию на веб-узле Майкрософт http://www.microsoft.com/exporting/ или http://www.microsoft.com/rus. Сведения об обновлении средства шифрования для поддержки 128-битных ключей находятся на веб-узле поддержки Windows 2000 Server по адресу http://support.microsoft.com/support/.

В области Безопасные подключения нажмите кнопку Изменить. Можно также включить проверку средствами SSL веб-сервера подлинности пользователей с помощью клиентских сертификатов, а также сопоставлять сертификаты с учетными записями. См. следующие разделы:
Включение клиентских сертификатов
Сопоставление клиентских сертификатов учетным записям пользователей

Чтобы не мучаться с PATH, сделаем, чтобы openssl запускался нормально.
cd /usr/local/bin
ln -s /usr/local/ssl/bin/openssl openssl

Итак, теперь будем генерировать нормальные сертификаты, без всяких SnakeOil.

Генерируем ключ.
openssl genrsa -des3 -out server.key 1024

На данном этапе мы создали server.key, теперь генерируем запрос в службу верификации.
openssl req -new -key server.key -out server.csr

Будьте аккуратны в ответах, ведь это потом увидят все. Если ошиблись, все можн повторить заново. Да, не ошибитесь, CommonName – это адрес хоста без http://

Все, если вы получили следующую надпись, то запрос сгенерирован правильно

You now have to send this Certificate Signing Request (CSR) to a Certifying Authority (CA) for signing

Но мы не буржуи, подписывать у нас некому, поэтому мы будет сами подписывать себя. Хотя если у вас есть деньги и вам необходимо подписать свой сертификат именно у глобальных авторизационных центров, то на modssl.org Вы найдете все необходимые адреса и ссылки.
openssl genrsa -des3 -out ca.key 1024
openssl req -new -x509 -days 365 -key ca.key -out ca.crt

Генерируем подпись авторизационного центра на год (можно и на больше), процедура полность схожа с генерацией ключа.

Копируем sign.sh из pkg.contrib из пакета mod_ssl в каталог с ключами

И подписываем свой же запрос
./sign.sh server.csr

Получив напись, содержащую

Now you have two files: server.key and server.crt. These now can be used as following

Начинаем радоваться, все собрано так, как надо. Копируем server.key и server.crt на место старых, но в каталоге c crt файлом Makefile не трогаем. Скопировав новый .crt файл, наберите make в этом же каталоге – он создаст некий хеш файл.

Все, теперь перезапустите Apache и можете наслаждаться тем, что вы сделали собственный WWW сервер, защищенный с помощью SSL.

Проверить защищенность вы можете посмотрев информацию о сертификатах или соединении в info-окнах браузеров. Если вы им не доверяете, то дайте команду
openssl s_client -connect localhost:443 -state –debug

Она выведет полностью всю информацию, которую она сможет выжать из вашего SSL сервера.

Теперь о неприятном: к сожалению, я пока не смог разобраться, почему иногда проскакивают ошибочные сообщения для версии Apache 1.3.9 (НЕ для 1.3.12 – с ним все в порядке).

Например, вышеприведенная команда для версии 1.3.9 возвращает ошибку, говоря о неправильной версии протокола, а для 1.3.12 отрабатывает нормально. Последняя версия openssl (0.9.5a) вообще не захотела компилироваться с 1.3.9, пришлось ставить 0.9.4. Конечно, путем грязного хака я заставил 0.9.5а компилироваться, но это неправильно (кстати, MSIE отказывался работать с этим хаком, когда NN соединялся без проблем). Во всех конференция рекомендуют брать самые последние версии всех трех пакетов. Скорее всего, если поподбирать версии, все соберется и будет работать вообще без ошибок. А с другой стороны – ну и что, что вот такие вот утилиты ругаются, tcpdump или любой другой анализатор трафика показывает, что соединение зашифровано. Что нам и требовалось



PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Администрирование Web серверов и Web служб | Следующая тема »


 




[ Время генерации скрипта: 0.1062 ]   [ Использовано запросов: 20 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.