С чего начинается интернет. Конечно же Apache, наверное это единственный "живой" веб-сервер, который появился на заре развития интернета, и который продолжает жить и здравствовать. Ну, собственно, это была полемика, а мы перейдем к практике.
Итак, обзаводимся инструментами
- Собственно, сам сервер Apache. Идем на сайт http://httpd.apache.org/download.cgi. Поддерживаемые версии на сегодня это 2.0.X и 2.2.X (да-да, 2.2 ветка уже тоже поддерживается). Внимание!!!: хотим SSL? Конечно. И не забываем, что нам надо взять соответствующий установочный пакет "Win32 Binary including OpenSSL 0.9.8m (MSI Installer)".
- Ваш любимый блокнот, где придется немного подредактировать конфигурационные файлы Apache.
- Хотим SSL? Конечно же, безопасность превыше всего. Тогда идем на http://www.slproweb.com/products/Win32OpenSSL.html (официальный сайт библиотек OpenSSL для Windows). И скачиваем оттуда версию "Win32 OpenSSL v1.0.0a Light" (для тех, кто в 64-битном танке, там есть версия "Win64 OpenSSL v1.0.0a Light"). И не в коем случае не берите полную версию - она абсолютно не нужна.
Да, чуть не забыл. Вы абсолютно не должны смущаться, по поводу разных версий OpenSSL в установочном пакете Apache и в поставке Win32 OpenSSL Light.
- Ну и естественно, нужен пациент. То есть Terrasoft версии 3.3.2, веб-сервисы которого мы и будем подключать к Apache 2.X.X.
Краткое отступление. Когда писалась данная заметка, я тестировал все нижеописанное в следующей конфигурации: Windows Server 2008 32-bit, Apache 2.2.15 32-bit with SSL, IIS 7.0 (по умолчанию, я установил все расширения), Terrasoft XRM 3.3.2.107. Соответственно, все мои изыскания были проведены для данных версий. Но, скажу честно и откровенно, должны заработать и в других комбинациях.
Установка Apache.
Все до ужаса просто. Кликаем всегда далее и вот у нас стоит Apache, и он даже запустился. Так, только прежде чем ставить Apache, давайте посмотрим вокруг себя и попытаемся найти того, кто (или что) нам обязательно будет мешать. Вот некоторые кандидаты, замеченные Вашим покорным слугой.
Кандидат №1 - это конечно же уже установленный и запущенный Apache (другой версии). Если он Вам нужен - Вы и так уже знаете как его ставить, а если не нужен - удаляйте , удаляйте - мы же все равно ставим новый.
Кандидат №2 - это IIS. А-я-я-й. Мы же Apache ставим - зачем нам IIS. Поэтому необходимо удалить IIS с компьютера, чтобы он Вам не мешал и "не портил всю картину".
Как его удалять - ну это уже задание на дом - для изучения всяких-таких руководств от Microsoft.
Кандидат №3 - Skype. Ага, а что ему делать на сервере? Ну если он все-таки там нашелся, необходимо в его настройках отключить использование 80 и 443 портов (а он, редиска, использует их по умолчанию - зачем, это уже другая песня).
Итак, смотрим на скриншоты и вперед. В основном, установка идет со значениями по умолчанию.
Шаг №1
Шаг №2
Шаг №3
Шаг №4. Обратите внимание на значение в поле ServerName. Если Вы не будете использовать виртуальный хостинг, то здесь должно быть прописан полный адрес вашего сервера.
Также, по умолчанию, ставим Apache как службу системы с автоматическим запуском и прослушиванием порта 80.
Шаг №5
Шаг №6
Шаг №7
Проверить работоспособность можно, если перейти по адресу http://127.0.0.1/ или по адресу http://имя_Вашего_сервера>/. Если Вы увидите след. картинку, то можно считать, что Apache установлен, запущен и работает нормально.
Установка Terrasoft XRM
Здесь я даже останавливаться не буду. Это итак разложено по полочкам в "Руководстве администратора". Единственный момент (а оказывается многие забывают) - это надо настроить путь к папке Settings в файле RunSettings.xml
К примеру, после установки Terrasoft XRM со значениями по умолчанию, путь к папке Settings будет C:\Program Files\Terrasoft\Settings\.
После этого, необходимо запустить TSClient.exe и настроить подключение к конфигурации.
Настройка Web-сервисов под Apache
Итак, Apache есть, Terrasoft XRM установлен. Самое время подключить web-сервисы. Открываем в любимом редакторе файл httpd.conf, который находиться в папке conf корневой папки установки Apache (если ставили по умолчанию, то это будет C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf) и в конец файла добавляем следующие строки (для Apache 2.2.x)
LoadModule tsapache_module \
"С:\Program Files\Terrasoft\Bin\TSWebServicesServerLibraryApache22.dll"
/TSWebServices>
SetHandler TSWebServicesServerLibraryApache22-handler
>
Для Apache 2.0.x, строки будут следующие
LoadModule tsapache_module \
"С:\Program Files\Terrasoft\Bin\TSWebServicesServerLibraryApache20.dll"
/TSWebServices>
SetHandler TSWebServicesServerLibraryApache20-handler
>
Название виртуальной директории (в данном примере TSWebServices) Вы можете придумать самостоятельно так, как Вам нравится.
Чтобы изменения вступили в силу, необходимо произвести перезапуск Apache сервера. Если по быстрому, то в трее у Вас должен быть значок Apache Monitor , кликнув по которому откроется окно программы, в котором можно сделать перезапуск (остановку/запуск) сервера Apache. Если перезапуск прошел успешно, значит модуль веб-сервисов загрузился успешно. Можно проверить работоспособность, если перейти по адресу http://127.0.0.1/TSWebServices/ (где вместо 127.0.0.1 может быть записан полный адрес сервера, а TSWebServices - это название виртуальной папки, которое Вы указали в httpd.conf). Вы должны увидеть следующую картинку
Увидели - вуаля. Web-сервисы под Apache запущенны и работают. Далее необходимо настроить клиент Terrasoft, но останавливаться на этом не буду, так как в руководстве данный материал полностью раскрыт и освещен.
Настройка SSL.
Вот собственно мы и добрались до самого главного. То есть до безучастности. Конечно, многие могут возразить, зачем, мол, веб-сервисы да еще и через SSL - не проще ли поднять VPN или заходить на удаленный рабочий стол.
Да, неверное многие так и делают, но дискуссии на тему что лучше мы оставим другим, а сейчас просто займемся настройкой SSL под Apache.
Но сначала немного теории. Итак, для того чтобы обзавестись защищенным каналом, необходимо наличие сертификатов. А здесь начинаются сплошные непонятные слова и действия. (Да, можно и бубен прикупить, с надписями SSL). Но мы сейчас быстро разложим все по полочкам.
Собственно, сертификат - это заверенный удостоверяющим центром электронный (или печатный, что очень редко) документ, подтверждающий принадлежность владельцу открытого ключа или каких-либо атрибутов. А теперь, чтобы не надо было ломать мозги, представим себе, что сертификат - это какой либо документ (например копия Вашего паспорта) содержащий Ваши данные и это все заверено государственным нотариусом. Ведь ни у кого не будет сомнений, что это копия действительно Вашего паспорта, а не дяди Васи со стороны. То есть, удостоверяющий центр - это такая организация, которой все доверяют. Довольно известные компании Thawte, VeriSign очень давно работают в этом сегменте, что позволяет им довольно интенсивно влиять на многие аспекты сертификации в целом.
Для нас же с Вами, сертификат - это некий файл в формате X.509 (может быть текстовым, а может и не быть :-)) который содержит информацию про Вас, и информацию про того, кто сертификат "заверил". Понятие "заверил" не зря взято в кавычки - это значит что в Вашем сертификате стоит электронная цифровая подпись той компании, которая подтвердила правдивость Ваших данных. Собственно, как мокрая печать нотариуса на документах.
Также существуют корневые сертификаты (CA). Корневой сертификат - это сертификат, который заверен сам собой. Напрашивается вопрос - зачем сертификат который заверен своей же организацией. А вот ответ на самом деле очень простой. Если каждый сертификат должен быть кем-то заверен (далее по тексу буду использовать выражение "подписан", так как в мире сертификатов оно больее полно раскрывает смысл), то где-то должно быть начало этой цепочки. Так вот, начало этой цепочки - это и есть корневой сертификат.
Кроме всего этого, существуют публичные списки корневых сертификатов. Это списки тех сертификатов, которые либо включены в операционную систему либо встроенны в приложение (например, браузер Mozilla Firefox). Используя эти публичные сертификаты (CA) приложение может проверить "на действительность и правильность" любой сертификат. В случае с браузерами - мы видим "позеленевшую" адресную строку, когда заходим на любой сайт HTTPS.
Итак, было немного теории, теперь перейдем к практике.
Для начала подготовим инструменты - это минимальный набор файлов: openssl.exe, libeay32.dll, ssleay32.dll и главное - openssl.cfg. Можно забрать архивом прикрепленных файлах. Распаковываем. Конечно, туда, куда Вам больше нравится.
Теперь вкратце о том, что необходимо сделать. Так как мы будем генерировать (создавать) все сами - (денег нет, не дают, нет необходимости покупать у гигантов CA) - то нам необходимо будет сгенерировать два сертификата. Первый - это RootCA - то есть наш корневой сертификат, который мы сами же и подпишем. Второй - это сертификат сервера, на котором будут работать вебсервер.
Чтобы долго не расписывать что, как и почем, в архиве есть файл gen.cmd (для любознательных - можете заглянуть внутрь). Запускаем и идем по шагам.
Итак, какие данные у вас спросит скрипт.
Код страны - двухбуквенное обозначение, вводить необходимо в верхнем регистре.
Название компании. Обязательно латиницей. На данный момент пробелы в названии не поддерживаются (хотя для любопытных - можете попробовать).
Название сервера - это должно быть полное FQDN имя домена, для которого будет сгенерирован сертификат. Обычно - это полное название компютера, на котором установлен Apache2 (или IIS). Если это не так - ну тогда Вам прямая дорога к вашему системному администратору (если это не Вы) - он должен быть в курсе.
Введенные данные будут записаны в файл info.txt.
Пароли - первый для приватного ключа от CA, второй - для приватного ключа сервера. Минимум - 4 символа. (Сохранены будут с файлах с расширением .pwd)
После этого будут сгенерированны ключи и сертификаты. При создании экспортных версий (для MS) - будут запрошены пароли экспорта - эти пароли будут запрошены при импорте сертификатов в MS.
Да, если у Вас что-то пошло не так, там есть простенький файл clean.cmd - который удалит все сгенерированные и промежуточные данные. (Внимание, приватные ключи тоже будут удалены).
Продолжение следует...