Бесплатный SSL-Сертификат на StartSSL
ИНСТРУКЦИЯ БОЛЬШЕ НЕ РАБОТАЕТ
Наконец, я решил отказаться от AS3 в пользу связки HTML+JS с использованием IFrame. Очевидно, для того, что бы это приложение открывалось из Вконтакте, необходимо залить и клиентскую и серверную часть приложения на сервер. Казалось бы, ничего сложного, но залив приложение на хостинг, я обнаружил, что оно не будет открываться в браузере, если Вконтакте работает через HTTPS. Ниже я опишу, как настроить Apache для работы с HTTPS. Все пункты, кроме последнего будут подходить и для любого другого серверного софта.
SSL, TLS, SSH, HTTPS
Немного разъяснений. Интуитивно я всегда видел какую-то зависимость между SSL и SSH, оба использую RSA шифрование для передачи, оба позволяют пробрасывать через себя другие протоколы. Оказалось, что протоколы исторически имеют разные корни, а следовательно не имеют между собой прямой связи, кроме схожести используемых технологий.
И так:
SSL - Secure Sockets Layer. Изначально разработан компанией Netscape Communications для добавления протокола HTTPS в свой веб-браузер Netscape Navigator.
TLS - Transport Layer Security. Развитие протокола SSL. Т.е. после SSL версии 3, следом идет TLS. Иногда для обозначения протокола пишут TLS/SSL.
HTTPS - Расширение протокола HTTP, поддерживающее шифрование. Данные, передаваемые по протоколу HTTP, упаковываются в пакеты SSL или TLS. HTTPS по умолчанию используется TCP-порт 443.
SSH - Secure Shell или Безопасная Оболочка. Этот протокол стоит особняком от первых трех. Первая версия протокола была разработана Тату Улёненом и не имеет отношения к SSL/TLS/HTTPS.
Подробнее о протоколах всегда можно прочитать в Википедии или иных источниках. Описания выше лишь должны объяснить различия между протоколами.
Перед регистрацией
Для регистрации сертификата я воспользовался сервисом http://www.startssl.com. Сервис позволяет бесплатно получить сертификат, подтверждающий владение доменным именем. Такого сертификата вполне достаточно для приложения Вконтакте. Прежде чем приступить к получению сертификата, у вас должны уже быть:
Сервер - лучше всего арендовать VPS, например на OVH, самый дешевый VPS стоит 2 евро. Если вы экспериментируете и не хотите тратиться, есть возможность приобретения бесплатного VPS. Процесс я описал в статье.
Доменное имя - типа www.example.com. Купить доменное имя от 100 руб (.ru) до 500 руб (.com).
Сервер - лучше всего арендовать VPS, например на OVH, самый дешевый VPS стоит 2 евро. Если вы экспериментируете и не хотите тратиться, есть возможность приобретения бесплатного VPS. Процесс я описал в статье.
Доменное имя - типа www.example.com. Купить доменное имя от 100 руб (.ru) до 500 руб (.com).
Опишу процесс получения сертификата по шагам:
1. Регистрация
2. Подтверждение email
3. Подтверждение владения доменом
4. Получение закрытого ключа
5. Получение сертификата
Регистрация
Тут все просто. Заполняйте формы регистрации, поскорее заканчивайте с этим и переходите к следующему пункту.
Важно: По окончанию регистрации, вам предложат скачать и установить сертификат клиента. Это необходимо сделать, так как в дальнейшем сервис идентифицирует вас именно по выданному сертификату. Сертификат это отличается от того, что мы хотим получить для сервера и сгодится только для подтверждения личности.
Подтверждение email
Это не должно вызвать трудностей. Переходите на вкладку Validation и выбирайте Email Address Validation и жмите Continue.
Вам на мыло придет код, введите его в соответствующее поле и все.
Подтверждение владения доменом
К сожалению, это не так тривиально, как звучит. Снова переходим на вкладку Validation и на этот раз выбираем Domain Name Validation.
После нажатия на Continue нас попросят ввести доменное имя.
Теперь, когда адрес выбран, сервис отправит электронное сообщение на один из адресов ниже и предложит ввести код, содержащийся в сообщении.
Разумеется, для получения сообщения, необходимо либо иметь почтовый сервер, подключенный к домену, либо воспользоваться чужим. И так, простейшим вариантом является подключение к вашему домену яндекс ящика. Для этого на сервере уже должен быть поднят web-server.
Для начала открываем список сервисов yandex http://www.yandex.ru/all.
Получение закрытого ключа
Перейдите на вкладку Certificates Wizard и выберите пункт Web Server SSL/TLS Certificate.
После нажатия на Continue, появится форма ввода пароля, он нужен что бы зашифровать закрытый ключ, на пути от сервиса, к вам на сервер. О нашей безопасности заботятся буквально на каждом шагу. Главное - не забудьте ключ, он пригодится для расшифровки закрытого ключа.
После ввода пароля вам покажут поле с зашифрованным приватным ключом. Скопируйте его в файл ssl.key.e.
Сохраняйте файл и нажимайте Continue. Здесь вас попросят ввести имя поддомена(subdomain). Я сюда ввожу свой ник и пока не понял, зачем это нужно. Когда ввели имя поддомена, снова кликайте Continue, и на следующей странице вы получите сертификат. Его следует сохранить в файл ssl.crt. На этом процесс окончен, переходим к установке ключей. )
Сохраняйте файл и нажимайте Continue. Здесь вас попросят ввести имя поддомена(subdomain). Я сюда ввожу свой ник и пока не понял, зачем это нужно. Когда ввели имя поддомена, снова кликайте Continue, и на следующей странице вы получите сертификат. Его следует сохранить в файл ssl.crt. На этом процесс окончен, переходим к установке ключей. )
Установка ключей
К сожалению, просто получить ключи недостаточно, необходимо провести небольшую настройку, если конечно она еще не проведена.
После этого, у вас в каталоге будет свеженький закрытый ключ, пригодный для чтения.
Для настройки hostname на CentOS, проделайте следующее:
Для начала, любыми способами перетащите файлы ssl.key.e и ssl.crt на сервер.
Когда файлы попали на сервер, нужно расшифровать закрытый ключ:
# openssl rsa -in ssl.key.e -out ssl.keyВас попросят ввести тот же пароль что вы вводили при его получении.
После этого, у вас в каталоге будет свеженький закрытый ключ, пригодный для чтения.
Настройка системы
Откройте файл /etc/sysconfig/network и установите HOSTNAME="www.example.com".
Затем, выполните команду
# hostname www.example.comТеперь откройте файл /etc/hosts и добавьте:
127.0.0.1 www.example.com localhost localhost.localdomainПерезагрузите сервер и переходите к следующему пункту.
# rebootДля Debian все немного проще.
В файле /etc/hostname введите имя вашего хоста. И затем выполните скрипт /etc/init.d/hostname.sh. После перезагрузки имя хоста подхватят все сервисы в системе.
После настройки системы, все готово к настройке apache. Я описал настройку apache на Ubuntu в следующей статье.
Комментарии
Отправить комментарий