Как установить SSL сертификат на свой веб-сервер (Apache2, Nginx).

Мы рассказывали раньше. Эта статья поможет вам установить SSL-сертификат на Apache.

Установка SSL-сертификата

Для установки сертификата потребуется:

  1. Файл сертификата и цепочка сертификата. Центр сертификации присылает эти данные на почтовый ящик владельца сертификата.
  2. Ключ сертификата. Он у вас должен быть. Ключ генерируется перед подачей запроса на выпуск сертификата вместе с CSR-запросом.
  3. Root доступ к серверу.

Итак, рассмотрим детальнее.

1. Копируем файлы сертификата на ваш сервер (например, через FTP-клиент).

2. Редактируем файл конфигурации Apache.

Примечание: по умолчанию путём к этому файлу является /etc/httpd/httpd.conf , где для каждого домена созданы блоки (они могут находиться в нижней части файла httpd.conf. ), но иногда блоки прописаны отдельно - например, в под-директориях /etc/httpd/vhosts.d/ или /etc/httpd/sites/ или в файле ssl.conf. Перед редактированием файла необходимо убедиться в наличии этих блоков, а сам файл лучше скопировать и сохранить под другим именем (например, httpd.conf_old) , чтобы иметь возможность откатиться к предыдущей конфигурации.

Итак, редактируем настройки работы виртуального хоста для установления SSL-соединения. Строки, прописанные жирным шрифтом должны быть добавлены в конфигурационный файл:

DocumentRoot /var/www/html2
ServerName www.yourdomain.com
SSLEngine on
SSLCertificateFile /path/to/your_domain_name.crt
SSLCertificateKeyFile /path/to/your_private.key
SSLCertificateChainFile /path/to/.сa-bundle

Имена файлов и пути к ним должны соответствовать именам и расположению файлов сертификатов:

  • SSLCertificateFile - файл вашего сертификата (например: your_domain_name.crt).
  • SSLCertificateKeyFile - файл ключа, который был создан при генерации CSR и начинается тегом -----BEGIN PRIVATE KEY-----. Для получения такого файла необходимо скопировать ключ в созданный на компьютере обычный текстовый документ и сохранить файл таким образом, чтобы его название заканчивалось на ".key". Если для генерирования CSR-запроса использовалась наша панель SSL, связка ключей CSR-RSA была отправлена вам на почту (если только вы не убрали эту опцию).
  • SSLCertificateChainFile - файл цепочки сертификатов (корневой + промежуточный сертификаты).

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

3. Проверяем конфигурацию Apache.

Для того, чтобы изменения вступили в силу, Вам необходимо будет перезапустить Apache, однако, если в конфигурационном файле есть ошибки - Вам это не удастся. Чтобы избежать лишних затруднений, проверяем работоспособность веб-сервера следующей командой:

apachectl configtest

4. Перезапускаем Apache.


Нужен SSL-сертификат для сайта? Мы предлагаем сертификаты от известных центров сертификации: Comodo , GeoTrust , Thawte и Symantec. У нас также можно и мультидоменный ssl-сертификат.

TLS или безопасность транспортного уровня - предшественник SSL, отвечает за безопасность на уровне сокетов, по сути это защищённый протокол созданный для того, чтобы обеспечить безопасную передачу обычного сетевого трафика.

За счет этих протоколов информация может быть безопасно передана между двумя узлами не будучи при этом перехваченной и прочтённой третьими лицами. Также они отвечают за проверку подлинности домена и сервера, проверяя достоверность сертификата.

В этой статье я расскажу как создать самостоятельно подписанный сертификат SSL для Apache на базе Ubuntu 14.04, что позволит вам шифровать поступающий трафик. Хотя такой способ не обеспечивает проверки подлинности сервера, он позволяет пересылать информацию в защищенном режиме.

Требования

Прежде чем начать, требуется выполнить некоторые настройки. Пользователь, под которым мы будем работать должен иметь sudo привелегии. Также нам понадобится установленный Apache. Если вы его ещё не установили, то можете сделать это выполнив следующие команды:

Sudo apt-get update sudo apt-get install apache2

Шаг 1 - Активация модуля SSL

Пакет Apache для Ubuntu 14.04 по-умолчанию поддерживает SSL . Его достаточно просто активировать. Команда для активации модуля:

Sudo a2enmod ssl

После активации SSL следует перезапустить сервер для вступления в силу новых настроек:

Теперь наш веб сервер поддерживает SSL, осталось выполнить некоторые настройки.

Шаг 2 - создание подписанного сертификата SSL

Для начала создадим поддиректорию в каталоге настройки Apache, где будем хранить сертификат.

Sudo mkdir /etc/apache2/ssl

Теперь создадим здесь ключ и сертификат одной командой:

Sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/apache2/ssl/apache.key -out /etc/apache2/ssl/apache.crt

Давайте подробно разберёмся в параметрах команды:

  • openssl - основной инструмент для создания и управления сертификатами, ключами, запросами на подпись и т.д. для OpenSSL
  • req - этот параметр задаёт запрос на подпись сертификата X.509. X.509 - стандартная структура открытого ключа, которой придерживается SSL для управления ключами и сертификатами. Нам необходим этот параметр так как мы хотим создать новый сертификат.
  • -x509 - этот параметр указывает на то, что мы хотим создать самостоятельно подписанный сертификат.
  • -nodes - указывает на то, что мы не хотим создавать кодовую фразу. При создании кодовой фразы у вас могут возникнуть проблемы при автоматическом запуске Apache, так как каждый раз придется её вводить.
  • -days 365 - срок действия сертификата - один год.
  • -newkey rsa:2048 - этот параметр указывает на одновременное создание приватный ключа и запроса на сертификат. Это необходимо, так как мы не создали приватный ключ заранее. rsa:2048 - создает RSA ключ длиной 2048 бит.
  • -keyout - имя файла создаваемого приватного ключа.
  • -out - имя файла создаваемого сертификата.

После запуска этой команды вам предстоит ответить на несколько вопросов. Наиболее важный из которых - Common Name (e.g. server FQDN or YOUR name)". Здесь следует ввести доменное имя ассоциируемое с сертификатом, или открытый IP адрес при отсутствии доменного имени.

Вопросы выглядят примерно следующим образом:

Country Name (2 letter code) :RU State or Province Name (full name) :Moscow Locality Name (eg, city) :Moscow Organization Name (eg, company) :Your Company Organizational Unit Name (eg, section) :Department of Kittens Common Name (e.g. server FQDN or YOUR name) :your_domain.com Email Address :[email protected]

Ключ и сертификат будут созданы в каталоге /etc/apache2/ssl .

Шаг 3 - Настройка Apache для использования SSL

Теперь у нас есть сертификат и ключ и мы можем настроить Apache для использования этих файлов в файле виртуальных хостов. Вместо использования шаблона 000-default.conf мы воспользуемся шаблоном default-ssl.conf , который уже включает в себя некоторые необходимые настройки.

Откройте этот файл с правами root:

Sudo nano /etc/apache2/sites-available/default-ssl.conf

После удаления комментариев файл выглядит следующим образом:

ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key SSLOptions +StdEnvVars SSLOptions +StdEnvVars

Выглядит довольно сложно, но нам и не надо глубоко вникать в структуру этого файла. Для начала укажем обычные параметры, которые мы задаем при создании виртуального хоста (ServerAdmin, ServerName, ServerAlias, DocumentRoot и т.д.) и укажем место хранения SSL сертификатов. В итоге файл настройки должен выглядеть примерно следующим образом:

ServerAdmin [email protected] ServerName your_domain.com ServerAlias www.your_domain.com DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/apache2/ssl/apache.crt SSLCertificateKeyFile /etc/apache2/ssl/apache.key SSLOptions +StdEnvVars SSLOptions +StdEnvVars BrowserMatch "MSIE " \ nokeepalive ssl-unclean-shutdown \ downgrade-1.0 force-response-1.0 BrowserMatch "MSIE " ssl-unclean-shutdown

Сохраните и закройте файл после исправления.

Шаг 4 - активация виртуального хоста с SSL

Теперь настало время включить наш виртуальный хост. Выполняем команду:

Sudo a2ensite default-ssl.conf

Перезапускаем Apache:

Sudo service apache2 restart

Теперь виртуальный хост, который будет служить для безопасной передачи данных, должен запуститься.

Шаг 5 - проверка

Итак, мы выполнили предварительную настройку, настало время проверить её. Заходим на наш сервер через протокол https://

Https://you_domain.com

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

Итак, нажимаем “Proceed anyway” (продолжить). Вы будете перенаправлены в корневой каталог вашего домена. Теперь ваш трафик зашифрован. Вы можете убедиться в этом увидев значок замка на панели меню.

Заключение

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

Если вы собираетесь запускать проект с использованием SSL, следует задуматься над приобретением SSL сертификата от удостоверяющего центра.

В этом посте пойдёт речь как установить SSL сертификат на свой веб сервер через isp manager и напрямую через apache2 или nginx . Так же в этом посте будет рассмотрен способ и сайт для генерации бесплатного SSL сертификата длительностью на 1 ГОД! Подробности под катом.
Как установить SSL сертификат
SSL сертификаты обеспечивают защиту от прослушивания информации между клиентом и сервером в Интернете.

Устанавливая SSL сертификат на ваш сайт, вы поднимете продажи вашего сайта и обезопасите ваших клиентов.

Для установки SSL Сертификата необходимо:

  1. купить отдельный айпи адрес для вашего сайта.
    2. получить SSL Сертификат
  2. сохранить закрытый ключ при генереации SSL Сертификата, начинается с (--BEGIN RSA PRIVATE KEY--)

Установка SSL Сертификата - ISPMANAGER

  1. в настройках домена добавьте доступ по протоколу SSL порт 443
  2. в меню SSL Сертификаты создать существующий сертификат
  3. в поле "Ключ"; необходимо добавить скопированный защитный ключ начинается с BEGIN RSA
  4. с поле "Сертификат"; необходимо добавить сертификат который пришел на email начинается с --BEGIN CERTIFICATE--
  5. в поле "Цепочка сертификатов"; необходимо добавить цепочку сертификатов обычно называется файл bundle, но может и не быть. Зависит от конкретной ситуации

Установка SSL Сертификата - APACHE 2

  1. выделите для домена отдельный ip адрес
  2. скомпилируйте apache с поддержкой ssl
  3. добавить в apache конфиг в разделе server virtualhost с портом 443:
NameVirtualHost ваш ip:443 ServerName ваш ip:443 ServerAlias www.вашдомен.com:443 SSLEngine on SSLCertificateFile /путь/cert.crt SSLCertificateKeyFile /путь/cert.key SSLCACertificateFile /путь/cert.bundle
  1. в файл cert.crt необходимо добавить сертификат который пришел на почту начинается с --BEGIN CERTIFICATE--
  2. в файл cert.bundle необходимо добавить цепочку сертификатов обычно называется файл bundle

Установка SSL Сертификата - NGINX

  1. выделите для домена отдельный ip адрес
  2. скомпилируйте nginx с поддержкой ssl ./configure -with-http_ssl_module
  3. добавить в nginx конфиг в разделе server следующие строки:
listen 443 default ssl; ssl_certificate /путь/ssl/cert.pem; ssl_certificate_key /путь/ssl/cert.key; ssl_client_certificate /home/ssl/cert.pem; ssl_verify_client off; ssl_ciphers ECDHE-RSA-AES256-SHA:AES256-SHA:CAMELLIA256-SHA:DES-CBC3-SHA; ssl_prefer_server_ciphers on; ssl_protocols TLSv1; ssl_session_cache shared:SSL:10m; ssl_session_timeout 5m;
  1. в файл cert.key необходимо добавить скопированный защитный ключ начинается с BEGIN RSA
  2. в файл cert.pem необходимо добавить сертификат который пришел на почту начинается с --BEGIN CERTIFICATE-- и добавить цепочку сертификатов обычно называется файл bundle

Это то что касается именно установки сертификата. Но вы спросите где его взять? Рассказываю как я получил сертификат сроком на 1 год для 1 домена бесплатно, причём этот сертификат считается доверенным, т.к. официальным и браузеры его принимают на ура!

Для начала перейдём на сайт https://www.startssl.com/ и там регистрируемся, для начала нажмём на фри сертификат, введём свои данные (имя фамилия, адрес проживания, телефон, почта).

На эту почту вам придёт код активации, вы его вводите, потом вводите домен, для которого хотите получить сертификат. Указываете почту администратора (создайте на вашем сервере почту с адресом из предложенных на их сайте, я создал у себя webmaster).

На эту почту вам придёт код, который нужно ввести в следующую форму, это необходимо чтоб подтвердить административный доступ к своему серверу.

После этого вы получите 2 файла, crt и key. Для того чтобы установить ключи на свой сервер через isp manager зайдите в раздел tools на сайте старт ссл, там выберите раскодирование файла ключа, откройте файл формата key в блокноте, скопируйте его содержимое и вставьте в большое поле, ниже введите пароль от этого ключа, который вы указали на этапе его формирования. на выходе вы получите раскодированный текст. Используйте его в качестве рса ключа в isp manager, там же введите пароль к этому ключу, который вы уже указывали ранее.

Перезапустите сервер на всякий случай и попробуйте открыть в браузере https адрес вашего сайта. Если у вас не будет ошибок сертификата - значит всё супер 🙂

Настройка HTTPS на Apache и установка SSL необходима, чтобы обеспечить защиту данных пользователей на вашем веб-сайте..

Активный SSL-сертификат

Перед установкой SSL-сертификата от сайт перейдите к и убедитесь, что услуга SSL-сертификата активна:

Процесс установки SSL

После выпуска SSL на ваш контактный e-mail придёт письмо с данными для его установки, это:

  • сам сертификат;
  • корневой сертификат;
  • промежуточный сертификат.

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

Установка на Ubuntu/Debian

Перед установкой SSL на Ubuntu/Debian необходимо включить модуль mod_ssl с помощью команды: a2enmod ssl .

Чтобы установить SSL:


На этом настройка SSL-сертификата на Apache закончена. Далее необходимо настроить переадресацию для вашего сайта.

Настройка HTTPS на Apache

После установки SSL необходимо настроить редирект с протокола HTTP на HTTPS. Редирект для Apache настраивается через файл.htaccess.

Чтобы осуществить переадресацию добавьте в конце файла.htaccess следующие строки:

RewriteEngine On RewriteCond %{SERVER_PORT} !^443$ RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI}

Проверка установленного SSL

Вы можете проверить корректность установки SSL-сертификата по инструкции:

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

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

становка на хостинг .masterhost

Если требуется установить сертификат на домен, который размещен на нашем виртуальном хостинге, то сделать это возможно в двумя способами:

  • SNI (бесплатно) :
    Древо услуг - Домен - Поддержка SSL - Добавить.
  • Выделенный IP (140 рублей в месяц. Обычно требуется для работы с некоторыми платежными системами) :
    Древо услуг - Домен - Выделенный IP\SSL - Добавить. В выпадающем меню выбираете сертификат.

* Для обновления сертификата, например, после его продления, выполняете аналогичные действия: Древо услуг - Домен - Поддержка SSL или Выделенный IP\SSL (в зависимости от способа установки) - Изменить.

енерация (объединение) сертификата для Windows ПО

Для установки полученного сертификата на любое ПО в Windows требуется, чтобы файл сертификата содержал как сам сертификат, так и закрытый ключ. Т.е. Вам нужно будет объединить полученный у нас сертификат с Вашим файлом закрытого ключа.

Сделать это можно так:

openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt

certificate.pfx - имя сертификата, который Вы получите в результате объединения;

privateKey.key - закрытый ключ;

certificate.crt - сам сертификат, который мы Вам выдали.

pache

  • Скопируйте файлы SSL сертификата на Ваш сервер.
  • Затем нужно найти файл конфигурации Apache для редактирования.

    Чаще всего подобные файлы конфигурации хранятся в /etc/httpd. в большинстве случаев основной файл конфигурации называется httpd.conf. Но в некоторых случаях блоки могут находиться в нижней части файла httpd.conf. Иногда Вы можете найти такие блоки как отдельно под директорией, к примеру, /etc/httpd/vhosts.d/ или /etc/httpd/sites/, или в файле, который называется ssl.conf.

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

  • Далее установите блоки SSL для задания конфигурации.

    Если Вам нужно, чтобы Ваш сайт работал и с защищенным, и с незащищенным соединением, Вам необходим виртуальный хост для каждого соединения. Для этого Вам следует сделть копию существующего незащищенного виртуального хоста и создать его для SSL-соединения как описано далее в п. 4.

  • Затем создайте блоки для подключения SSL-соединения.

    Ниже для Вас приведен очень простой пример виртуального хоста для SSL-соединения. В SSL конфигурацию должны быть добавлены части, которые выделенные полужирным:

    DocumentRoot /var/www/html2 ServerName www.yourdomain.com SSLEngine on SSLCertificateFile /path/to/your_domain_name.crt SSLCertificateKeyFile /path/to/your_private.key SSLCertificateChainFile /path/to/root.crt Исправте имена файлов для согласования с файлами сертификатов:
    • SSLCertificateFile - файл Вашего сертификата (например: your_domain_name.crt).
    • SSLCertificateKeyFile - файл ключа, созданного при генерации CSR.
    • SSLCertificateChainFile - файл корневого сертификата.
  • Теперь проверьте конфигурацию Apache до перезапуска. Всегда лучше проверить файлы конфигурации Apache на ошибки до перезапуска. Так как Apache не запустится заново, если в файлах конфигурации будут фигурировать синтаксические ошибки. Для этого используйте следующую команду: apachectl configtest
  • А теперь можно перезапустить Apache.

ginx

  • Скопируйте файлы сертификата на сервер.

    Скопируйте Ваш сертификат (your_domain_name.crt) и корневой сертификат (root.crt) вместе с.key-файлом который Вы генерировали при создании CSR-запроса в директорию на Вашем сервере, куда Вы собираетесь установить сертификат. Для обеспечения безопасности, сохраняйте файлы с пометкой "только чтение".

  • Соедените сертификат с корневым сертификатом.

    Вам необходимо соединить файл сертификата с файлом корневого сертификата в единый.pem файл, выполнив следующую команду:

    cat root.crt >> your_domain_name.crt
  • Измените файл виртуального хоста Nginx.

    Откройте Ваш файл виртуального хоста Nginx для сайта, который Вы защищаете. Если Вам необходимо, чтобы сайт работал и с защищенным соединением (https), и с незащищенным (http), Вам нужен серверный модуль для каждого типа соединения. Сделайте копию существующего серверного модуля для незащищенного соединения и вставьте ниже оригинала. После этого добавьте строчки, которые приведены ниже жирным шрифтом:

    server { listen 443; ssl on; ssl_certificate /etc/ssl/your_domain_name.crt; (or .pem) ssl_certificate_key /etc/ssl/your_domain_name.key; server_name your.domain.com; access_log /var/log/nginx/nginx.vhost.access.log; error_log /var/log/nginx/nginx.vhost.error.log; location / { root /home/www/public_html/your.domain.com/public/; index index.html; } } Настройка имен файлов:
    • ssl_certificate - файл, содержащий основной и корневой сертификаты (шаг 2).
    • ssl_certificate_key - файл с ключем, который был сгенерирован при создании CSR.
  • Перезагрузите Nginx.

    Введите следующую команду для перезагрузки Nginx:

    sudo /etc/init.d/nginx restart

xchange 2010

  • Скопировать Ваш сертификат на Exchange сервер.
  • Затем запустить консоль управления Exchange данным образом: Start > Programs > Microsoft Exchange 2010 > Exchange Management Console.
  • Теперь нажмите "Manage Databases" и далее "Server configuration".
  • Далее выберите Ваш SSL сертификат из меню в центре окна, затем нажмите на "Complete Pending Request" в меню "Actions".
  • Откройте файл Вашего сертификата, после нажмите Open > Complete

    Exchange 2010 довольно часто выдает сообщение об ошибке, которая начинается фразой "The source data is corrupted or not properly Base64 encoded." Игнорируйте данную ошибку.

  • Далее вернитесь к консоли управления Exchange и нажмите "Assign Services to Certificate", чтобы начать использовать сертификат.
  • Из списка выберите Ваш сервер, нажмите "Next".
  • Теперь выберите сервисы, которые должны быть защищены сертификатом и нажмите Next > Assign > Finish. Теперь Ваш сертификат установлен и готов к использованию на Exchange.