Руководство для начинающих по SSL-сертификатам веб-сайтов
При создании веб-приложения, которое работает с личными данными, безопасность является главным приоритетом. Это верно не только в отношении интернет-магазинов и корзин покупок, но и в отношении таких популярных социальных сетей, как Twitter и Foursquare. SSL - это безопасный протокол, очень похожий на HTTP, так как он может получать и передавать данные через Интернет..
Понятно, что вся концепция немного запутанная, но ее не так сложно понять. Если вы являетесь веб-мастером или кем-то, кто просто заинтересован в изучении SSL-сертификатов, это руководство должно быть для вас идеальным. Я собрал этот набор самых запутанных терминов, чтобы выложить для начинающих. Потратьте некоторое время на просмотр здесь, а также на чтение других внешних статей по этой теме. Безопасность жизненно важна для успеха любого веб-сайта, а SSL - просто ступенька в общей картине..
Что такое SSL?
Протокол SSL расшифровывается как Уровни защищенных сокетов и был первоначально разработан Netscape. Это процесс, в котором данные, передаваемые между пользователем и сервером, шифруются / дешифруются, так что никакая внешняя третья сторона не может взломать соединение.
SSL ведет себя как цифровой паспорт, который проверяет учетные данные как себя, так и конечного веб-сервера. Когда оба удостоверения проверены, SSL предоставляет защищенное соединение через HTTPS. Этот процесс выполняется с использованием сертификаты. Я разбил ключевые аспекты SSL-сертификата, который включает в себя:
- Имя владельца
- Серийный номер сертификата, используемый для идентификации
- Срок действия сертификата
- Открытый ключ сертификата, используемый для шифрования информации
- Закрытый ключ сертификата, используемый для расшифровки информации (обычно поступающей с веб-сервера)
Вам не нужно полностью понимать использование всей этой информации. В некоторых случаях вы получите сертификат с еще большей информацией. Тем не менее, ничего из этого не повлияет непосредственно на пользователя; влияет только на соединение между сервером и удаленным компьютером.
Настройка сертификата
Скорее всего, вы сможете понять суть работы SSL. Это более сложная форма передачи данных - например, передача сообщения внутри заблокированного сейфа. Нет необходимости запоминать ключевые элементы SSL-сертификата или узнавать, как он соединяется с веб-сервером, но хорошо бы хотя бы понять основы процесса, прежде чем настраивать свой собственный..
Сертификаты SSL фактически приобретаются у ряда надежных поставщиков в Интернете. Срок действия каждого сертификата истекает, что означает, что вам придется продлевать его, чтобы обеспечить безопасность вашего веб-сайта (обычно это происходит каждый год). С этим трудно справиться, но, к счастью, многие популярные веб-хостинги, такие как FatCow, помогут вам в процессе установки..
Сначала вы должны сгенерировать CSR или запрос на подпись сертификата на своем веб-сервере. CSR необходим, прежде чем вы сможете получить сертификат SSL. Это можно создать самостоятельно, если у вас есть полные права администратора на веб-сервере. Тем не менее, настоятельно рекомендуется сначала связаться с вашим веб-хостингом, поскольку они, скорее всего, не позволят вам сделать это самостоятельно. Никакого вреда в этом, на самом деле, это на самом деле делает вашу работу намного проще!
После того, как у вас есть этот зашифрованный CSR, вы можете связаться с поставщиком сертификатов. Есть только несколько надежных поставщиков, таких как Verisign или Thawte. Как только вы приобрели сертификат, просто обратитесь в службу поддержки вашего веб-хостинга, и он с радостью установит его для вас..
Различные типы SSL
Наиболее распространенный способ настройки SSL-сертификата - это использование вашего основного IP-адреса. Это известно как Выделенный SSL-сертификат. Это будет применяться только к вашему домену и веб-серверу. Не у всех есть достаточно денег, чтобы купить выделенный план хостинга, но, к счастью для всех нас, есть и другие решения.
Обычно есть три разных типа SSL-сертификатов, которые вы можете использовать. Некоторые поставщики услуг могут предлагать бесплатный сертификат в качестве пробного предложения с ограниченным сроком действия, но эти сертификаты ни в коем случае не являются более безопасными, чем стандартное соединение HTTP, и срок их действия быстро истекает..
- Выделенный SSL - Это самое безопасное и, очевидно, самое дорогое решение. HTTPS-соединение проверяется только для вашего корневого домена, для которого выбран целевой IP-адрес.
- Общий SSL - Веб-хосты, которые предлагают общий хостинг, иногда имеют несколько доменных имен, указывающих на один и тот же IP-адрес. В этом случае хосту намного проще управлять одним SSL на каждом сервере, охватывающем множество разных веб-сайтов..
- Wildcard SSL - Они могут быть похожи на выделенный или общий сертификат SSL в зависимости от конфигурации сервера. Сертификаты Wildcard SSL будут нацелены на несколько поддоменов для вашего сайта. Это жизнеспособное решение, если вы разделили различные функции вашего сайта, например, shop.domain.com, checkout.domain.com и т. д..
Если вы только начинаете, я настоятельно рекомендую использовать общую настройку SSL. Вряд ли вы сможете сразу позволить себе выделенный веб-хостинг / IP-адрес. И даже если вы можете, затраты на выделенный сертификат SSL являются ужасными. Но это абсолютно то, что вы должны изучить, если это возможно.
Однако, так как это руководство предназначено для начинающих, я думаю, что общего сертификата более чем достаточно, чтобы начать.
Пошаговое руководство
Лучший способ чувствовать себя комфортно с SSL-сертификатами - это рабочий пример. Давайте соберем небольшой сертификат Comodo от Namecheap. У них очень разумные цены, которые идеально подходят для начинающих. И так как нам нужно только пройти процесс и обрисовать в общих чертах, это будет идеальный материал для этого урока.
Создать CSR
Теперь для начала нам нужно создать запрос на подпись на серверной части нашего сервера. Я использую учетную запись бизнес-хостинга через HostGator для тестирования одного из моих доменов. Каждый веб-хостинг немного отличается, поэтому вам нужно будет проконсультироваться со службой поддержки, если у вас возникли проблемы. Этот URL используется для генерации CSR в учетных записях HostGator..
Обратите внимание, что большая часть этой информации должна соответствовать веб-данным Whois моего домена. Я использую приложение Whois Domain Tools, которое предоставляет всю информацию, которая требуется для этой формы. Если у вас установлена конфиденциальность домена, вам нужно использовать эти данные вместо своих, чтобы CSR соответствовал.
Этот процесс может занять до 24 часов для завершения регистрации. Я получил ответ в течение 15 минут. Давайте перейдем и купим наш сертификат сейчас, чтобы он был готов к установке вместе с запросом на подпись.
Купим!
Планы Comodo варьируются от 9 до почти 100 долларов в год. Я смотрю на пакет EssentialSSL, который стоит всего 25 долларов в год. Это не плохая сделка, учитывая некоторые альтернативы.
Этот план поставляется с 15-дневной политикой возврата, если мы не удовлетворены сертификатом. Кроме того, наше доменное имя будет защищено для поддоменов www и non-www. После добавления этого пакета в мою корзину мы можем проверить. Namecheap потребует, чтобы я вошел в существующую учетную запись или зарегистрироваться для новой.
После ввода всех данных моего аккаунта появится экран окончательного платежа. У нас есть возможность оплаты средствами, хранящимися на моем счете, кредитной картой или PayPal. Если все проходит правильно, мы перенаправляем на форму подтверждения заказа (вы должны дополнительно получить электронное письмо с этой информацией). Пока все выглядит хорошо!
Окончательная установка
CSR должен появиться в электронном письме от вашего веб-хостинга. Ключ больше похож на блок перемешанных символов и клавиш. Это то, что нам нужно предоставить для проверки SSL. Возвращаясь к Namecheap, давайте найдем страницу сертификата SSL и нажмите “активировать”.
На этой новой странице нам нужно выбрать тип сервера и ввести ключ CSR. Я выбрал Apache + OpenSSL в качестве выбора по умолчанию. Это обычная настройка для Apache, но если вы не уверены, просто проконсультируйтесь с вашим хостом заранее. Обратите внимание, что ваш веб-хост должен был вернуть больше RSA Key который используется для частной аутентификации на стороне сервера. Все, что нам нужно сделать, это скопировать и вставить более короткий ключ CSR в поле и отправить.
Затем мы генерируем электронное письмо, отправленное на “утверждающий” доменного имени. Он будет содержать некоторую информацию о вашем SSL-сертификате и о том, как активировать его на хосте. Эта последняя форма отправки требует наш секретный ключ RSA, а также некоторую дополнительную информацию о пакете SSL. Это все поставляется из Namecheap после того, как мы перейдем в CSR.
Стоит отметить, что на некоторых веб-хостах вы не сможете использовать SSL в общей среде. HostGator позволяет компаниям обновить свои учетные записи до основного IP-адреса, чтобы не возникало никаких конфликтующих ошибок с сертификатом. Форма установки SSL от HostGator проста и очень быстро проверяется.
После того, как ваш хост подтвердит, что все в порядке, мы должны быть готовы к работе. Поймите, что это может занять от пары часов до одного дня и более. Будьте терпеливы и продолжайте проверять свою электронную почту. После проверки попробуйте зайти на ваш сайт через HTTPS, и все данные сертификата должны быть в адресной строке. Это всегда сложно, когда вы только начинаете, но не бойтесь обращаться за помощью к вашему провайдеру SSL или веб-хостингу, если это необходимо..
Управление безопасным соединением
Я обнаружил, что эта статья поддержки Hostgator чрезвычайно полезна для понимания процесса установки. Даже если вы не являетесь клиентом HostGator, вы, скорее всего, будете использовать cPanel для управления любым удаленным веб-сервером. Это верно для хостинга 1 & 1, Bluehost и т. Д..
Но лучшая часть использования настройки SSL на стороннем веб-хостинге заключается в том, что вам не нужно вносить изменения (или не более минуты) в свой код! После того, как вы пройдете процедуру покупки сертификата, большинство веб-хостингов будут достаточно вежливы, чтобы установить их для вас. После того, как все работает гладко, все соединения через HTTP и HTTPS должны работать одинаково.
Вы можете проверить подлинность сертификата, проверив адресную строку URL в своем веб-браузере. Вы должны заметить небольшой значок замка, который обозначает проверенное соединение SSL между вашим компьютером и удаленным веб-сервером. Некоторые браузеры даже отображают больше информации о сертификате, если щелкнуть значок замка.
Apache .htaccess перенаправляет
Если у вас возникают проблемы с удержанием посетителей по протоколу HTTPS, вы можете рассмотреть возможность использования скрипта Redirect. Обычно это настраивается на серверах Apache с использованием файла .Htaccess, какие веб-хосты позволяют вам настраивать прямо в cPanel.
Ниже я добавил несколько примеров кодов, которые вы можете использовать для настройки собственного файла .htaccess. Это перенаправит весь входящий трафик на https: // с поддоменом www. Вы можете удалить www, чтобы весь трафик вместо этого направлялся на https://yourdomain.com/ и правила перезаписи все равно будут работать отлично.
RewriteEngine Вкл. RewriteCond% HTTPS = выкл. RewriteRule ^ (. *) $ Https://www.yourdomain.com/$1 [R = 301, L] RewriteCond% http_host ^ yourdomain.com [NC] RewriteRule ^ (. *) $ https://www.yourdomain.com/$1 [R = 301, L]
Ссылки на файлы
Самая раздражающая проблема, с которой вы столкнетесь, - это ссылки на абсолютные URL-адреса вместо относительных путей к файлам. Это будет не отобразить полностью защищенное соединение, ссылаясь вместо этого на предупреждение о том, что “необеспеченные предметы” отображается на странице. Если вы называете любой тип внешнего носителя: видео, изображение, таблицу стилей, это должно быть сделано локально. Я продемонстрировал пример ниже:
С первым фрагментом кода вы загружаете потенциально небезопасный документ на защищенную страницу. Это тот самый метод, с помощью которого интеллектуальные хакеры могут обойти ваше шифрование. В большинстве случаев я сталкиваюсь с анализом через JavaScript или VBScript. Но чтобы быть в безопасности, просто убедитесь, что ни один из ваших активов не использует напрямую через HTTP.
Если по какой-либо причине вы должны извлечь файл через абсолютный URL, используйте вместо него HTTPS. Если у вас есть файлы, размещенные на внешнем веб-сайте или сервере, это может вызвать проблемы, так как вы не можете проверить другое соединение HTTPS. Работайте над тем, чтобы все носители веб-страниц были консолидированы под одним IP, чтобы вы вообще не сталкивались с этими проблемами!
Ссылки по теме
- Объясните, как я 5: что такое онлайн-сертификаты безопасности, SSL, HTTPS и как они работают?
- Эволюция подлинности SSL [Инфографика]
- Генерация и установка SSL-сертификатов пошагово
Заключение
Я надеюсь, что это вводное руководство дало вам некоторое представление о мире SSL. Веб-безопасность - это быстро развивающаяся отрасль, которая защищает множество личных данных пользователей. Все известные интернет-магазины, в том числе Amazon и eBay, уже давно используют SSL.
Я признаю, что SSL / HTTPS - это не тема, которую вы можете просто изучить, чтобы понять. Как и в случае с программированием, вам действительно нужно погрузиться в грязь и настроить собственный сертификат. Это сложная задача, которую стоит поставить после, но она предлагает прекрасное чувство выполненного долга в долгосрочной перспективе. Если вы знаете о каких-либо других полезных руководствах или связанных материалах, не стесняйтесь делиться ими в области обсуждения.