Довольно часто возникает необходимость организовать защищенное соединение для передачи важных данных. Например, паролей, номеров кредитных карт и прочей конфиденциальной информации. Для этих целей используется шифрование данных с помощью SSL-сертификатов. Я расскажу о том, как получить правильный бесплатный сертификат и как подключить его к различным сервисам на сервере.
Правильный SSL-сертификат от любого известного центра сертификации стоит немалых денег. Но когда целью стоит просто организация защищенного соединения, то платить деньги как-то не хочется. Приходится пользоваться самоподписанными SSL-сертификатами, которые хоть и обеспечивают необходимый уровень безопасности соединения, но заставляют пользователей ваших сервисов наблюдать дополнительные диалоги в браузере или почтовом клиенте, требующие согласиться с тем, что пользователь будет доверять вашему самоподписанному SSL-сертификату. У неподготовленных пользователей с этим могут возникнуть проблемы.
Но, к счастью, нашелся один из известных центров сертификации, который выдает бесплатные SSL-сертификаты сроком на 1 год с возможностью продления. Это организация «StartSSL». Выданные SSL-сертификаты принимаются без лишних вопросов во всех браузерах.
Генерация запроса на получение SSL-сертификата
Прежде чем приступать к процедуре получения SSL-сертификата, необходимо создать секретный уникальный ключ и запрос на получение SSL-сертификата. Так же определимся, где в системе будут храниться сертификаты. Например, я храню свои сертификаты в «/etc/ssl/private». Если еще нет в системе данной директории, то создадим ее.
# mkdir -p /etc/ssl/private
# cd /etc/ssl/private
В дальнейшем, в качестве примера, я буду описывать все действия получения SSL-сертификата для домена «mrcat.ru».
Следующий шаг - генерация RSA-ключа и запроса на SSL-сертификат.
# openssl req -new -newkey rsa:2048 \
-nodes -keyout domain.key \
-subj '/C=RU/ST=Province/L=Town/O=Subject/OU=IT/CN=domain' \
-out domain.csr
В этой команде замените имя домена, регион, город и примечание. В строке «CN=…» должно быть полное имя домена. Для домена «mrcat.ru» получится следующее.
# openssl req -new -newkey rsa:2048 \
-nodes -keyout mrcat_ru.key \
-subj '/C=RU/ST=Moscow/L=Moscow/O=Mr.Cat Private Network/OU=IT/CN=mrcat.ru' \
-out mrcat_ru.csr
На выходе получатся два файла - «mrcat_ru.key» и «mrcat_ru.csr». Обязательно сделайте резервные копии этих файлов. В дальнейшем они не раз пригодятся.
Содержимое файла «mrcat_ru.csr» можно просмотреть, как показано ниже.
# openssl req -noout -text -in mrcat_ru.csr
Получение SSL-сертификата
Для получения SSL-сертификата нужно перейти на сайт организации «StartSSL» и зарегистрироваться. Это можно сделать просто пройдя по ссылке на большой кнопке с надписью «Express Lane». В процессе регистрации необходимо заполнить все поля представленной формы. Проявите особое внимание при заполнении поля, содержащего ваш адрес электронной почты. На следующем шаге будет произведена проверка вашего e-mail-адреса, поэтому, если на вашем почтовом сервере включен механизм серых списков, то проверка e-mail-адреса может пройти неудачно. Переходим к следующей странице и ждем на указанный e-mail-адрес письмо с проверочным кодом.
После получения письма копируем полученный проверочный код в представленную форму и двигаемся далее. Откроется следующая страница, на которой ничего делать не нужно.
Дождитесь прихода второго письма со ссылкой, которую нужно открыть в вашем любимом браузере. Будьте внимательны, на этом этапе будет создаваться персональный сертификат, с помощью которого будет производиться авторизация на сайте.
Пройдите по присланной ссылке и в открывшуюся форму скопируйте полученный проверочный код. Далее откроется форма генерации вашего персонального ключа. Выбираем высокую степень защиты и снова нажимаем «Continue». После нескольких секунд ваш персональный сертификат будет создан. Для его установки нажмите кнопку «Install» и затем снова «Continue».
Не забудьте создать резервную копию вашего персонального сертификата, иначе, при его утере, вы больше не сможете получить доступ к управлению вашими SSL-сертификатами.
Я расскажу как сделать резервную копию вашего персонального сертификата для браузера «Firefox». Откройте меню «Настройки», перейдите на вкладку «Дополнительно» и в ней на вкладку «Шифрование». Нажмите кнопку «Просмотр сертификатов». В открывшемся диалоге «Менеджер сертификатов» выберите вкладку «Ваши сертификаты». В списке выберите сертификат с именем «StartCom Free Certificate Member» и нажмите кнопку «Сохранить копию». После выбора места и имени файла, появится диалог для задания пароля к резервной копии вашего персонального сертификата. Укажите любой пароль, но только такой, который можно запомнить, и нажмите «OK».
Чтобы было понятнее, что нужно делать дальше, на этом этапе лучше прекратить выполнение сценария «Express Lane», нажав кнопку «Exit Express Lane».
Пройдите авторизацию на сайте с помощью вашего персонального сертификата «StartCom Free Certificate Member», нажав кнопку «Authenticate». Вы попадете в контрольную панель.
Следующий шаг - проверка вашего домена. Зайдите в «Validations Wizard», выберите «Domain Name Validation» и нажмите «Continue». Укажите имя вашего домена. В моем случае это будет «mrcat.ru». Далее выберите e-mail-адрес из представленных в списке. Этот e-mail-адрес должен существовать, так как на него придет письмо с проверочным кодом. Следуйте далее и дождитесь получения письма с проверочным кодом. Скопируйте его в поле ввода на странице. После нажмите «Continue» и «Finish». Проверка домена закончена.
Настало время получить SSL-сертификат для нашего домена. Нажимаем «Certificates Wizard» и выбираем «Web Server SSL/TLS Certificate». Следующий диалог можно пропустить, нажав «Skip», так как запрос на получение SSL-сертификата мы уже создали ранее в файле «.csr».
Скопируем данные из ранее созданного файла с расширением «.csr» в буфер обмена и вставим в открывшуюся форму. Я выполняю это для файла «mrcat_ru.csr». Нажимаем «Continue» два раза.
Далее выбираем наш домен, прошедший проверку, и снова нажимаем «Continue».
Следующий шаг - выбор суб-домена. В нашем случае достаточно просто указать «www» и нажать «Continue» два раза.
Все. В появившемся поле и будет наш свежеиспеченный SSL-сертификат. Я просто скопирую содержимое этого поля в файл «mrcat_ru.crt». Нажимаем «Finish».
Чтобы просмотреть полученный SSL-сертификат можно выполнить следующую команду.
# openssl x509 -noout -text -in mrcat_ru.crt
Для нашего SSL-сертификата требуется промежуточный сертификат, который мы можем получить, выполнив переход в контрольной панели по ссылке «Tool Box» и далее «StartCom CA Certificates». Загружаем промежуточный сертификат по ссылке «Class 1 Intermediate Server CA».
Теперь у нас есть весь набор необходимых файлов: «mrcat_ru.crt», «mrcat_ru.key» и «sub.class1.server.ca.pem».
Следующий шаг - подготовить набор файлов для различных сервисов. Создадим в директории «/etc/ssl/private» два файла. Первый будет состоять из файлов «mrcat_ru.crt» и «sub.class1.server.ca.pem», а второй из всех трех файлов - «mrcat_ru.crt», «mrcat_ru.key» и «sub.class1.server.ca.pem».
# cp mrcat_ru.crt mrcat_ru.crt+ca
# cat sub.class1.server.ca.pem >>mrcat_ru.crt+ca
# cp mrcat_ru.crt+ca mrcat_ru.crt+ca+key
# cat mrcat_ru.key >>mrcat_ru.crt+ca+key
Из названий файлов будет понятно, какое они имеют содержание.
Подключение SSL-сертификата к различным сервисам
Далее я расскажу, как воспользоваться полученным SSL-сертификатом для различных сервисов на сервере. Я буду рассказывать на примере «Gentoo GNU/Linux», но тоже самое, в большинстве своем, подойдет и для других дистрибутивов.
Начнем с «apache». Проверим, собран ли «apache» с USE-флагом «ssl».
# emerge apache -p
Запускается ли «apache» с поддержкой «SSL». Проверим в файле «/etc/conf.d/apache2». В переменной «APACHE2_OPTS» должна присутствовать опция «-D SSL».
Если все в порядке, то в опциях необходимого виртуального хоста дожны быть нижеприведенные строки.
/etc/apache2/vhosts.d/00_default_ssl_vhost.conf
<ifdefine SSL>
</ifdefine><ifdefine SSL_DEFAULT_VHOST>
<ifmodule ssl_module>
Listen 443
<virtualhost _default_:443>
...
SSLEngine on
SSLCertificateFile /etc/ssl/private/mrcat_ru.crt
SSLCertificateKeyFile /etc/ssl/private/mrcat_ru.key
SSLCertificateChainFile /etc/ssl/private/mrcat_ru.crt+ca
...
</virtualhost>
</ifmodule>
</ifdefine>
Все, можно перезапустить «apache».
Настройка «nginx». Проверим, собран ли «nginx» с USE-флагом «ssl».
# emerge nginx -p
Внесем необходимые опции в настройку виртуального хоста.
server {
listen 443 default ssl;
ssl_certificate /etc/ssl/private/mrcat_ru.crt+ca;
ssl_certificate_key /etc/ssl/private/mrcat_ru.key;
...
}
Это все. Перезапускаем «nginx».
Настройка «postfix». Проверим, собран ли «postfix» с USE-флагом «ssl».
# emerge postfix -p
В файл «/etc/postfix/main.cf» добавим необходимые строки.
/etc/postfix/main.cf
smtpd_tls_cert_file = /etc/ssl/private/mrcat_ru.crt
smtpd_tls_key_file = /etc/ssl/private/mrcat_ru.key
smtpd_tls_CAfile = /etc/ssl/private/mrcat_ru.crt+ca
smtpd_tls_auth_only = yes
Последняя строка разрешает аутентификацию только с использованием защищенного соединения, что препятствует передаче паролей в открытой форме.
Перезапускаем «postfix».
Настройка «courier-imap». Пакет «courier-imap» может быть собран либо с «openssl», либо с «gnutls», в зависимости от значения USE-флага «gnutls». В любом случае возможно использование SSL-сертификатов для организации защищенного соединения.
# emerge courier-imap -p
В файле «/etc/courier-imap/imapd-ssl» должны присутствовать следующие строки.
SSLPORT=993
SSLADDRESS=0
TLS_CERTFILE=/etc/ssl/private/mrcat_ru.crt+ca+key
А в файле «/etc/courier-imap/pop3d-ssl» - следующие.
SSLPORT=995
SSLADDRESS=0
TLS_CERTFILE=/etc/ssl/private/mrcat_ru.crt+ca+key
Теперь можно перезапустить соответствующие сервисы.
# /etc/init.d/courier-imapd-ssl restart
# /etc/init.d/courier-pop3d-ssl restart
Настройка «pure-ftpd». Проверим, собран ли пакет «pure-ftpd» с USE-флагом «ssl».
# emerge pure-ftpd -p
В переменной «MISC_OTHER» в файле конфигурации «/etc/conf.d/pure-ftpd» должна присутствовать опция «-Y1» для того, чтобы клиент мог организовать защищенное соединение.
По умолчанию, «pure-ftpd» ищет сертификат в файле «/etc/ssl/private/pure-ftpd.pem». Поэтому просто добавим символическую ссылку на соответствующий файл с SSL-сертификатом.
# ln -s /etc/ssl/private/mrcat_ru.crt+ca+key /etc/ssl/private/pure-ftpd.pem
Теперь перезапустим «pure-ftpd» и проверим его работу. Не все FTP-клиенты умеют работать с использованием защищенного соединения. Для проверки я использовал дополнение к браузеру «Firefox» - «FireFTP».
Существует огромная масса сервисов, в которых можно использовать защищенные соединения с использованием SSL-сертификатов. На мой взгляд, нужно всегда, где только возможно, использовать защищенные соединения, чтобы избежать перехвата конфиденциальных данных третьими лицами.
Бесплатные HTTP, SSL
Страница: 1
Сообщений 1 страница 25 из 25
Поделиться12015-12-01 11:21:36
Страница: 1