Как установить SSL сертификат на свой веб-сервер (Apache2, Nginx). Проверяем конфигурацию Apache

1. Сначала на сервер необходимо скопировать файлы сертификата при помощи FTP-клиента.

2. На втором этапе подлежит редактированию конфигурационный файл Apache.

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

Переходим непосредственно к редактированию. Настройка SSL на Apache для того, что виртуальный хост мог работать по защищенному соединению, требует добавления в файл httpd.conf следующих строк (добавляются 4 нижние строки под записью ServerName с вашим доменом):

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 – содержимое вашего SSL-сертификата, имеет вид your_domain_name.crt

SSLCertificateKeyFile – RSA-ключ, который генерируется одновременно с CSR-запросом.

SSLCertificateChainFile – цепочка сертификатов, которая включает в себя корневой и промежуточный сертификаты.

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

3. Обязательно проверьте текущие настройки Apache.

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

Apachectl configtest

4. Теперь можно перезапустить Apache при помощи команды:

Debian , Ubuntu :

Service apache2 restart

CentOS , Fedora :

Service httpd restart

Apachectl restart

На этом процесс установки закончен - ваш установлен. Если же настройка https на Apache все еще вызывает у вас вопросы — обращайтесь в нашу поддержку.

Еще не решили какой купить сертификат? Мы предлагаем сертификаты от Центров сертификации Comodo, Symantec и GeoTrust. У нас вы можете . Также в Европе и США еще никогда не была настолько доступна.

Данная статья предлагает пошаговую инструкцию по установке сертификата на HTTP сервер Apache. Обратите внимание, что с версии 2.4.8 Apache параметры конфигурации сервера были изменены.

1. Скопируйте файлы сертификатов на ваш сервер.
Вам нужно скопировать на сервер следующие файлы: сертификат сервера, закрытый (приватный) ключ и промежуточный сертификат, соответствующий типу Вашего сертификата сервера.

Сертификат сервера направлялся Вам по электронной почте после его выпуска в GlobalSign. Также Вы можете получить его в своей учётной записи GlobalSign , нажав на кнопку
«Edit » слева от номера заказа и скопировав сертификат в формате PEM .

Закрытый ключ для сертификата создаётся вместе с запросом на сертификат (CSR), поэтому файл закрытого ключа уже может находиться на Вашем сервере. Если приватный ключ утерян, то сертификат нужно перевыпустить.

Промежуточный (intermediate) сертификат, который потребуется установить на сервер, зависит от типа Вашего сертификата. Именно наличие промежуточного сертификата в цепочке позволяет связать Ваш сертификат с корневым (root) сертификатом GlobalSign и сделать цепочку доверенной. Загрузите один или несколько промежуточных сертификатов , соответственно типа Вашего сертификата, по ссылке ниже:
support.globalsign.com/customer/portal/topics/538410-root-certificates/articles

2. Откройте для редактирования конфигурационный файл Apache.
В зависимости от типа операционной системы путь директории конфигурационного
файла может быть разным:

CentOS/RedHat:
/etc/httpd/httpd.conf /etc/httpd/sites-enabled/name-of-virtualhost.conf

Debian/Ubuntu:
/etc/apache2/apache2.conf /etc/apache2/sites-enabled/name-of-virtualhost.conf

Более подробную информацию о пути нахождения конфигурационного файла можно найти по ссылке ниже:
https://wiki.apache.org/httpd/DistrosDefaultLayout

3. Настройте виртуальный хост для работы сертификата.

Найдите раздел VirtualHost и добавьте (или отредактируйте, если они уже имеются) следующие директивы, указав актуальные пути к файлам сертификатов и ключа:

DocumentRoot /var/www/examplesite ServerName example.com www.example.com SSLEngine on SSLCertificateFile /path/to/examplesite.crt SSLCertificateKeyFile /path/to/privatekey.key SSLCertificateChainFile /path/to/intermediate.crt

Убедитесь в правильности путей SSLCertificateFile, SSLCertificateKeyFile, SSLCertificateChainFile, каждый из них должен указывать на соответствующий файл.

Примечание: Начиная с версии Apache 2.4.8, вместо директивы SSLCertificateChainFile следует использовать директиву SSLCertificateFile, которая была расширена для поддержки промежуточных сертификатов. Добавление промежуточного сертификата в конец файла сертификата сервера создаст необходимую доверенную цепочку.

4. Протестируйте созданную конфигурацию сервера.
В зависимости от операционной системы, выполните команду:

Apachectl configtest
или
apache2ctl configtest

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

5. Перезапустите сервер Apache.
Для более старых версий дистрибутива Red Hat Enterprise Linux используйте скрипты:

CentOS/RedHat:
service httpd restart
Debian/Ubuntu:
service apache2 restart

Для дистрибутивов Red Hat Linux 7 или CentOS 7.0 используйте следующие команды:

CentOS/RedHat:
systemctl restart httpd.service
Debian/Ubuntu:
systemctl restart apache2.service

Примечание: некоторые конфигурации Apache могут отображать директиву SSLCACertificateFile.
Данное поле необходимо только, если сервер Apache используется для аутентификации клиента.

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

Если у вас остались вопросы по установке сертификата GlobalSign на HTTP сервер Apache, пожалуйста, свяжитесь со службой поддержки

TLS (Transport Layer Security) и его предшественник SSL (Secure Socket Layers) – это криптографические протоколы, которые используются для защиты передачи данных в Интернете.

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

Данное руководство поможет создать самоподписанный SSL-сертификат для веб-сервера Apache в Ubuntu 16.04.

Требования

  • Не-root пользователь с доступом к sudo (инструкции по созданию такого пользователя – в этой статье).
  • Предварительно установленный веб-сервер Apache. Можно установить стек LAMP, одним из компонентов которого является Apache (для этого следуйте ); чтобы установить только Apache, выполните только инструкции по установке этого веб-сервера, пропустив остальные разделы.

1: Создание SSL-сертификата

Для работы TLS/SSL использует комбинацию открытого сертификата и закрытого ключа. Закрытый ключ хранится на сервере и не разглашается. SSL-сертификат используется открыто и доступен всем пользователям, запрашивающим контент.

Чтобы создать самоподписанный сертификат и ключ, запустите команду:

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

Команда задаст ряд вопросов. Рассмотрим компоненты команды подробнее:

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

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

Самой важной строкой является Common Name (введите полное доменное имя сервера (FQDN) или свое имя). Как правило, в эту строку вносят доменное имя, с которым нужно связать сервер. В случае если доменного имени нет, внесите в эту строку IP-адрес сервера. В целом эти поля выглядят примерно так:

Country Name (2 letter code) :US
State or Province Name (full name) :New York
Locality Name (eg, city) :New York City
Organization Name (eg, company) :Bouncy Castles, Inc.
Organizational Unit Name (eg, section) :Ministry of Water Slides
Common Name (e.g. server FQDN or YOUR name) :server_IP_address
Email Address :admin@your_domain.com

Файлы ключа и сертификата будут помещены в каталог /etc/ssl.

При использовании OpenSSL нужно также создать ключи Диффи-Хеллмана, которые нужны для поддержки PFS (совершенной прямой секретности).

sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

Этот процесс займёт несколько минут. Ключи DH будут помещены в /etc/ssl/certs/dhparam.pem.

2: Настройка Apache для поддержки SSL

Итак, на данном этапе файлы ключа и сертификата созданы и хранятся в каталоге /etc/ssl. Теперь нужно отредактировать настройки Apache:

  1. Создать сниппет конфигураций, указывающий место хранения файлов SSL-сертификата и ключа.
  2. Настроить виртуальный хост Apache для поддержки сертификата SSL.
  3. Настроить незашифрованные виртуальные хосты для автоматической переадресации запросов на зашифрованный хост (опционально).

Местонахождение ключа и сертификата

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

Создайте новый сниппет Apache в каталоге etc/apache2/conf-available.

sudo nano /etc/apache2/conf-available/ssl-params.conf

Для безопасной настройки SSL обратимся к рекомендациям Remy van Elst на сайте Cipherli.st. Этот сайт предназначен для распространения простых и надёжных параметров шифрования для популярного программного обеспечения. Больше параметров для Apache можно найти .

Примечание : Данный список настроек подходит для более новых клиентов. Чтобы получить настройки для других клиентов, перейдите по ссылке Yes, give me a ciphersuite that works with legacy / old software.

Скопируйте все предложенные параметры.

Также нужно добавить параметр SSLOpenSSLConfCmd DHParameters, чтобы настроить поддержку ключей Диффи-Хеллмана.

# from https://cipherli.st/
# and https://raymii.org/s/tutorials/Strong_SSL_Security_On_Apache2.html
SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
SSLProtocol All -SSLv2 -SSLv3
SSLHonorCipherOrder On
Header always set Strict-Transport-Security "max-age=63072000; includeSubdomains; preload"
Header always set X-Frame-Options DENY
Header always set X-Content-Type-Options nosniff
# Requires Apache >= 2.4
SSLCompression off
SSLSessionTickets Off
SSLUseStapling on
SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
SSLOpenSSLConfCmd DHParameters "/etc/ssl/certs/dhparam.pem"

Сохраните и закройте файл.

Настройка стандартного виртуального хоста Apache

Теперь нужно настроить стандартный виртуальный хост Apache (/etc/apache2/sites-available/default-ssl.conf) для поддержки SSL.

Примечание : Если вы используете другой виртуальный хост, укажите его имя вместо /etc/apache2/sites-available/default-ssl.conf.

Прежде чем приступить к настройке, создайте резервную копию файла хоста.

sudo cp /etc/apache2/sites-available/default-ssl.conf /etc/apache2/sites-available/default-ssl.conf.bak

Откройте хост в текстовом редакторе:

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

На данный момент файл виртуального хоста выглядит примерно так (закомментированные строки опущены для удобства):



ServerAdmin webmaster@localhost
DocumentRoot /var/www/html


SSLEngine on
SSLCertificateFile /etc/ssl/certs/ssl-cert-snakeoil.pem
SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key

SSLOptions +StdEnvVars


SSLOptions +StdEnvVars

# BrowserMatch "MSIE " \
# nokeepalive ssl-unclean-shutdown \
# downgrade-1.0 force-response-1.0

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

В результате файл будет иметь такой вид:



ServerAdmin [email protected]
ServerName server_domain_or_IP
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key

SSLOptions +StdEnvVars


SSLOptions +StdEnvVars

BrowserMatch "MSIE " \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0

Сохраните и закройте файл.

Настройка переадресации (опционально)

На данный момент сервер поддерживает и HTTP, и HTTPS. Для более надёжной защиты сервера рекомендуется отключить незашифрованный трафик HTTP.

Отредактируйте виртуальный хост, разрешающий HTTP-трафик, и настройте переадресацию. Откройте файл /etc/apache2/sites-available/000-default.conf:

В блок VirtualHost добавьте директиву Redirect, которая будет переадресовывать весь незашифрованный трафик:


. . .
Redirect "/" "https://your_domain_or_IP"
. . .

Сохраните и закройте файл.

3: Настройка брандмауэра

Если вы включили брандмауэр ufw (согласно руководству по начальной настройке), на данном этапе его нужно настроить для поддержки трафика SSL. К счастью, при установке Apache регистрирует в ufw несколько своих профилей.

Чтобы просмотреть доступные профили, введите:

sudo ufw app list
Available applications:
Apache
Apache Full
Apache Secure
OpenSSH

Текущие настройки можно просмотреть при помощи команды:

Если разрешен только трафик HTTP, настройки будут иметь такой вид:

Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache ALLOW Anywhere

Apache (v6) ALLOW Anywhere (v6)

Чтобы добавить поддержку трафика HTTPS, нужно включить профиль Apache Full и отключить профиль Apache.

sudo ufw allow "Apache Full"
sudo ufw delete allow "Apache"

Проверьте текущее состояние брандмауэра:

sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Apache Full ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Apache Full (v6) ALLOW Anywhere (v6)

4: Обновление настроек Apache

Итак, теперь настройки веб-сервера и брандмауэра откорректированы. Можно включить SSL и настроенный для поддержки сертификата виртуальный хост, а затем перезапустить веб-сервер.

Включите модуль Apache для SSL, mod_ssl, и модуль mod_headers, который необходим для работы сниппета SSL:

sudo a2enmod ssl
sudo a2enmod headers

Включите подготовленный виртуальный хост:

sudo a2ensite default-ssl

Итак, теперь сайт и все необходимые модули включены. Проверьте синтаксис на наличие ошибок:

sudo apache2ctl configtest

Если ошибок нет, команда вернёт:

AH00558: apache2: Could not reliably determine the server"s fully qualified domain name, using 127.0.1.1. Set the "ServerName" directive globally to suppress this message
Syntax OK

Первая строка вывода сообщает, что директива ServerName установлена не глобально. Чтобы устранить это предупреждение, отредактируйте директиву ServerName в /etc/apache2/apache2.conf, указав доменное имя или IP сервера (это опционально, данное предупреждение устранять необязательно).

Если в синтаксисе обнаружены ошибки, исправьте их. Затем перезапустите веб-сервер:

5: Тестирование

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

https://домен_или_IP_сервера

Поскольку сертификат был подписан самостоятельно, браузер сообщит о его ненадёжности:

Your connection is not private
Attackers might be trying to steal your information
(for example, passwords, messages, or credit cards). NET::ERR_CERT_AUTHORITY_INVALID

Это нормальное поведение программы в подобной ситуации, поскольку браузер не может проверить подлинность хоста. Однако в данном случае нужно только шифровать трафик, с чем самоподписанный сертификат вполне справляется, потому предупреждение браузера можно пропустить. Для этого нажмите кнопку ADVANCED и кликните по предложенной ссылке.

После этого вы получите доступ к своему сайту.

Если вы настроили два блока server для переадресации трафика HTTP на HTTPS, проверьте, работает ли переадресация:

http://server_domain_or_IP

6: Постоянный редирект

Если все настройки сервера работают должным образом, настройте постоянный редирект вместо временного.

Откройте файл виртуального хоста Apache:

sudo nano /etc/apache2/sites-available/000-default.conf

Найдите ранее добавленную директиву Redirect и установите значение permanent.


. . .
Redirect permanent "/" "https://your_domain_or_IP"
. . .

Сохраните и закройте файл. Проверьте синтаксис:

sudo apache2ctl configtest

Перезапустите Apache:

sudo systemctl restart apache2

Заключение

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

Tags: ,

Итак, вы приобрели SSL-сертификат для вашего домена. В процессе заказа вы должны были выбрать авторизационный email, расположенный на вашем домене: admin, administrator, hostmaster, postmaster, webmaster. На выбранный вами авторизационный email придет письмо содержащее ссылку, пройдя по которой, вы подтвердите ваши административные права домена. После этого на ваш контактный электронный почтовый ящик аккаунта поступит несколько писем.

Имеются следующие файлы:

Приватный ключ (для удобства сохраните его в виде простого текстового файла с именем ваш_домен.key)

Файл сертификата для вашего домена, ваш_домен.crt

Два файла цепочки сертификатов PositiveSSLCA2.crt и AddTrustExternalCARoot.crt

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

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

Установка сертификата средствами ISPmanager


1. Войдите в ISPmanager под учетной записью "root". (Если вы заказали VPS сервер на тарифе с администрированием нашими специалистами, то данный шаг необходимо пропустить)

Войдите в меню "Учетные записи" → "Пользователи", выберите пользователя-владельца сайта, к которому требуется привязать SSL-сертификат, и нажмите кнопку "Изменить".


В появившемся установите галочку "Может использовать SSL", если она еще не установлена.


Сохраните изменения кнопкой "Ok".

Дальнейшие действия мы будем выполнять от имени созданного пользователя-владельца сайтов. Снова выберите вашего пользователя-владельца сайта и нажмите кнопку "Войти" в правом верхнем углу, ISPmanager автоматически понизит ваши привилегии до его уровня.


2. Перейдите в раздел "WWW" → "WWW-домены". В списке отображаются все добавленные в конфигурационные файлы веб-сервера домены, в колонке "Параметры" иконками отображается наличие или отсутствие тех или иных модулей веб-сервера, которые участвуют в обработке запросов к сайту. Необходимо подключить модуль для работы с SSL для сайта, для этого выберите домен и нажмите кнопку "Изменить" сверху.


Откроется новая вкладка, в которой нужно установить галочку "Защищённое соединение (SSL)" и "Перенаправлять HTTP-запросы в HTTPS" и сохранить изменения кнопкой "Ok". Обратите внимание, желательно чтобы этот домен был единственным доменом с SSL на этом IP-адресе.


3. Теперь перейдем в раздел "WWW" → "SSL сертификаты", здесь показаны все имеющиеся на сервере сертификаты безопасности, отсюда мы добавим наш. Обратите внимание на наличие самоподписанного сертификата для вашего домена - он был сгенерирован ISPmanager-ом автоматически на предыдущем шаге, в момент когда вы установили галочку "SSL" в настройках WWW-домена. Этот сертификат использоваться не будет, мы добавим наш, сделать это можно кнопкой "Создать" сверху.


На первом шаге выберете тип сертификата "существующий".


На втором шаге вам необходимо будет ввести имя сертификата, сам сертификат, приватный ключ сертификата и подтверждающую цепочку. Откройте в "Блокноте" все имеющиеся у вас файлы: приватный ключ, который мы сохранили в файл ваш_домен.key, файл сертификата ваш_домен.crt и другие два. В форму ввода "SSL-сертификат" скопируйте содержимое файла ваш_домен.crt; в форму "Ключ SSL-сертификата" скопируйте текст из файла ваш_домен.key. В форму "Цепочка SSL-сертификатов" последовательно скопируйте содержимое файлов PositiveSSLCA2.crt и AddTrustExternalCARoot.crt, именно в этом порядке. Нажмите кнопку "Завершить" для сохранения введенных данных.


В открывшемся окне в поле "SSL-сертификат" выберете добавленный вами в предыдущем шаге сертификат и подтвердите изменения кнопкой "Ok".


5. Перейдите на ваш сайт, для работы по шифрованному соединению в адресной строке браузера впишите адрес наподобие "https://ваш_домен.ru/". Аббревиатура "https" означает работу по шифрованному протоколу HTTP, что нам и требуется. Если все сделано правильно, браузер не будет выдавать никаких предупреждений или сообщений о потенциальных угрозах, а сразу отобразит сайт. В адресной строке при этом тем или иным способом будет обозначен факт того, что передаваемые данные шифруются и сертификат подтвержден.


Настройка закончена. Следует, однако, иметь в виду, что при каких-либо изменениях в ПО веб-сервера (его переконфигурирование, смена IP-адреса домена, установка nginx перед Apache например) эта схема работы может нарушиться. В этом случае возможно придется внести соответствующие коррективы в конфигурационные файлы веб-сервера вручную.
Если у вас возникнут какие-либо вопросы при добавлении сертификата к вашему сайту - техническая поддержка всегда будет рада помочь вам, напишите пожалуйста письмо на адрес support@сайт с контактного e-mail вашего сервера.

Установка сертификата утилитами из консоли: CentOS, Apache 2

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

1. Поместите все 4 файла (приватный ключ, сохраненный в файле ваш_домен.key , и файлы сертификатов ваш_домен.crt , PositiveSSLCA2.crt и AddTrustExternalCARoot.crt


# cat /var/www/httpd-cert/PositiveSSLCA2.crt /var/www/httpd-cert/AddTrustExternalCARoot.crt > -bundle

# openssl verify /var/www/httpd-cert/ваш_домен.crt-bundle


5. В конфигурационном файле Apache 2 (наиболее вероятно - /etc/httpd/conf/httpd.conf) создайте новый VirtualHost на 443м порту. Ниже приведены только директивы, отвечающие за работу с сертификатом, остальные можно скопировать по аналогии из имеющегося для 80-го порта:

SSLEngine on
SetEnvIf User-Agent ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0
SSLCertificateFile /var/www/httpd-cert/ваш_домен.crt
SSLCertificateKeyFile /var/www/httpd-cert/ваш_домен.key
SSLCACertificateFile /var/www/httpd-cert/ваш_домен.crt-bundle
ServerName ваш_домен
...

6. Проверьте корректность синтаксиса конфигурационного файла:
# /etc/init.d/httpd configtest
Syntax OK
Перезапустите Apache и проверьте работу сайта с https://, если все сделано правильно - в адресной строке при этом тем или иным способом будет обозначен факт того, что передаваемые данные шифруются и сертификат подтвержден.

Установка сертификата утилитами из консоли: CentOS, nginx

1. Поместите все 4 файла (приватный ключ, сохраненный в файле ваш_домен.key, и файлы сертификатов ваш_домен.crt , PositiveSSLCA2.crt и AddTrustExternalCARoot.crt ) в директорию /var/www/httpd-cert/.

2. Установите владельца и группу всех файлов в root:
# chown root:root /var/www/httpd-cert/ваш_домен.key /var/www/httpd-cert/ваш_домен.crt /var/www/httpd-cert/PositiveSSLCA2.crt /var/www/httpd-cert/AddTrustExternalCARoot.crt

3. Установите права на файл ключа "только для владельца, только для чтения":
# chmod 400 /var/www/httpd-cert/ваш_домен.key

4. Создайте файл цепочки сертификатов:
# cat /var/www/httpd-cert/AddTrustExternalCARoot.crt >> /var/www/httpd-cert/ваш_домен.crt
# cat /var/www/httpd-cert/PositiveSSLCA2.crt >> /var/www/httpd-cert/ваш_домен.crt
Проверить подлинность цепочки сертификата можно так:
# openssl verify /var/www/httpd-cert/ваш_домен.crt
/var/www/httpd-cert/ваш_домен.bundle: OK
Посмотреть информацию об сертификате - например так:
# openssl x509 -text -in ваш_домен.crt

5. Внесите в конфигурационный файл nginx, в модуль server, следующие директивы:
server {

Ssl on;
ssl_certificate /var/www/httpd-cert/ваш_домен.crt;
ssl_certificate_key /var/www/httpd-cert/ваш_домен.key;

Server_name your.domain.com;
...
}
Обратите внимание, что это должен быть первый, и желательно единственный VirtualHost на этом IP-адресе на 443 порту.

6. Перезапустите nginx командой
# /etc/init.d/nginx restart
и проверьте работу сайта с https://, если все сделано правильно - в адресной строке при этом тем или иным способом будет обозначен факт того, что передаваемые данные шифруются и сертификат подтвержден.

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

  1. Браузер Google Chrome
  2. Веб-сервер Apache, предварительно установленный на виртуальный выделенный сервер
  3. Доменное имя
  4. Доступ к одному из почтовых адресов:

[email protected]
[email protected]
[email protected]

StartSSL.com предлагает вашему сайту абсолютно бесплатный заверенный SSL-сертификат (т.е., посещая ваш сайт, пользователи больше не увидят отпугивающий красный экран с сообщением «this site isn’t trusted»). Это отличная возможность сэкономить на покупке заверенного сертификата.

Для начала откройте сайт StartSSL.com и при помощи панели инструментов перейдите StartSSL Products →StartSSL™ Free. В верхней части страницы выберите Control Panel.

Примечание : Для выполнения руководства нужно использовать Google Chrome.

Выберите опцию Express Signup.

Укажите свои личные данные и нажмите кнопку continue. Вы получите электронное письмо с проверочным кодом. Скопируйте и вставьте в форму на странице StartSSL.

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

На данном этапе нужно создать закрытый ключ; существует 2 уровня сложности этого ключа: High и Medium. Выберите High.

Когда ключ будет готов, нажмите Install.

Chrome выведет всплывающее окно, сообщающее, что сертификат был успешно установлен.

Итак, теперь браузер авторизован при помощи нового сертификата, а это значит, что теперь вы имеете доступ к StartSSL AUTHENTICATION AREAS. На данном этапе нужно корректно отформатировать созданный сертификат, чтобы VPS мог использовать его. Нажмите на ссылку Control panel и выберите опцию Authenticate. Chrome выведет всплывающее окно, спрашивая, нужно ли пройти авторизацию, и покажет только что установленный сертификат. Войдите в панель управления при помощи этого сертификата.

Также нужно подтвердить доменное имя, так как без этого невозможно установить сертификат. В панели управления выберите Validations Wizard, а затем Type to Domain Name Validation. При этом будет запрошен адрес электронной почты, привязанный к этому домену (он выглядит примерно так: [email protected]).

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

Откройте вкладку Certificates Wizard и выберите Web Server SSL/TLS Certificate. Нажмите Continue и введите пароль, оставив остальные поля как есть.

На экране появится текстовое поле, которое содержит закрытый ключ. Скопируйте и вставьте его в текстовом редакторе, а затем сохраните его в файл с именем ssl.key.

Нажмите Continue, после чего браузер спросит, для какого домена нужно создать сертификат.

Укажите свой домен и переходите к следующему разделу.

При этом будет запрошен субдомен, к которому будет привязан сертификат. В большинстве случаев используется www; чтобы использовать другой поддомен, просто введите его в это поле вместо www.

StartSSL предоставит вам новый сертификат в текстовом поле, как это было с закрытым ключом.

Снова скопируйте и вставьте полученные данные в текстовый редактор и сохраните файл как ssl.crt.

Щёлкните в окне Save Certificate правой кнопкой и сохраните данные в два файла:

  • StartCom Root CA (PEM Encoded) (сохраните в ca.pem)
  • Class 1 Intermediate Server CA (сохраните в sub.class1.server.ca.pem).

В целях безопасности StartSSL шифрует закрытый ключ (файл ssl.key); но серверу необходима его незашифрованная версия. Чтобы расшифровать его в файл private.key, скопируйте его на сервер и используйте следующую команду:

openssl rsa -in ssl.key -out private.key

OpenSSL запросит пароль; введите пароль, который вы использовали на сайте StartSSL.

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

  • ca.pem: Root-сертификат StartSSL;
  • private.key: незашифрованная версия закрытого ключа (этот файл нужно тщательно хранить от посторонних);
  • sub.class1.server.ca.pem: промежуточный сертификат StartSSL;
  • ssl.key: зашифрованная версия закрытого ключа;
  • ssl.crt: новый сертификат.

Файл ssl.key можно оставить. Остальные файлы нужно скопировать на сервер, если вы не сделали этого ранее:

scp {ca.pem,private.key,sub.class1.server.ca.pem,ssl.crt} YOURSERVER:~

Включение сертификата на Apache

Итак, сертификат готов к использованию; теперь нужно настроить веб-сервер Apache для использования нового сертификата SSL. Данный раздел продемонстрирует настройку Apache на сервере Ubuntu. Отредактируйте команды согласно вашему дистрибутиву.

Для начала нужно создать каталог для хранения ключей. Включите модуль SSL веб-сервера и перезапустите Apache:

sudo a2enmod ssl
sudo service apache2 restart
sudo mkdir -p /etc/apache2/ssl

Скопируйте ранее созданные файлы в каталог /etc/apache2/ssl на сервере.

s udo mkdir -p /etc/apache2/ssl
cp ~/{ca.pem,private.key,sub.class1.server.ca.pem,ssl.crt} /etc/apache2/ssl

Затем выполните:

ls /etc/apache2/ssl

Эта команда вернёт:

ca.pem
ssl.crt
private.key
sub.class1.server.ca.pem

Теперь откройте конфигурационный файл apache2. При использовании стандартных настроек введите:

nano /etc/apache2/sites-enabled/000-default

Этот файл имеет примерно такой вид:



DocumentRoot /var/www

Options FollowSymLinks
AllowOverride None



AllowOverride None
Order allow,deny
allow from all



AllowOverride None

Order allow,deny
Allow from all



# alert, emerg.
LogLevel warn




AllowOverride None
Order deny,allow
Deny from all


Скопируйте этот скрипт и внесите его под уже существующим кодом, а затем измените верхнюю строчку:

таким образом:


SSLEngine on
SSLProtocol all -SSLv2



В результате должно получиться:


ServerAdmin webmaster@localhost
DocumentRoot /var/www

Options FollowSymLinks
AllowOverride None


Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all

ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"

Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0::1/128



SSLEngine on
SSLProtocol all -SSLv2
SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM
SSLCertificateFile /etc/apache2/ssl/ssl.crt
SSLCertificateKeyFile /etc/apache2/ssl/private.key
SSLCertificateChainFile /etc/apache2/ssl/sub.class1.server.ca.pem
ServerAdmin webmaster@localhost
DocumentRoot /var/www

Options FollowSymLinks
AllowOverride None


Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all

ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
Alias /doc/ "/usr/share/doc/"

Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0::1/128



Просмотров