Для начала необходимо создать CSR-запрос на получение SSL сертификата. В результате чего мы получим 2 файла (domainname.key - зашифрованный приватный ключ и domainname.csr - CSR с приватным ключом RSA). У меня эти файлы были сгенерированы автоматически во время создания домена.
Генерация CSR
Если у вас их нет, то заходим на сервер по SSH.
1. Устанавливаем openssl, если не установлен:
sudo apt-get install openssl
2. Далее переходим в папку где будут храниться сертификаты, это: /var/www/httpd-cert/userName или /etc/apache2/ssl или /ваш/вариант и вводим команду для генерации зашифрованного приватного ключа:
1-й вариант, с паролем:
openssl genrsa -des3 -out domainname.key 204
Вам нужно ввести пароль для доступа к файлу. А также данный пароль необходимо будет вводить каждый раз при запуске веб-сервера. Если вы потеряете пароль, то нужно будет заказывать новый сертификат.
2-й вариант, без пароля:
openssl genrsa -out domainname.key 2048
Для имени приватного ключа лучше всего использовать доменное имя для которого заказывается сертификат (например: devreadwrite.com.key вместо domainname.key).
3. Для создания CSR с приватным ключом RSA вводим следующую команду в консоль:
openssl req -new -key domainname.key -out domainname.csr
Если при создании приватного ключа вы указали пароль (использовали ключ -des3), то будет запрошен этот пароль.
При создании CSR необходимо ввести информацию которая будет отображаться в сертификате. При этом не используйте следующие символы: < > ~ ! @ # $ % ^ * / \ ( ) ? . , &
4. Заполняем необходимые поля:
Поле пароль оставьте пустым.
5. Теперь можем проверить CSR командой:
openssl req -noout -text -in domainname.csr
Получаем бесплатный SSL сертификат от WoSing
Далее, заходим на сайт: https://buy.wosign.com/free/?lan=en и регистрируемся и(или) авторизируемся там. Переходим на вкладку Request a Free SSL Certificate. В поле Domain name вводим список доменных имен для которых нам нужно получить SSL сертификат, далее выбираем период действия сертификата, выбираем язык сертификата, вводим капчу, соглашаемся с правилами и жмем "Submit request"
Далее переходим на вкладку "My Order".
Верификация владения доменом
При первом заказе вам необходимо будет пройти верификацию домена, во вкладке My Order жмем Domain Control verification и выбираем удобный для вас метод верификации:
Например, подтверждение путем добавления на сайт .html файла.
Добавляем html файл на сайт, вводим капчу и жмем на кнопку верификации:
После верификации домена продолжаем.
Запрос на подпись сертификата (CSR)
Продолжаем. Находим в списке ваш заказ и жмем Submit CSR:
Появится всплывающее окно в которое необходимо ввести содержимое CSR файла.
Содержимое будет начинаться с строки -----BEGIN CERTIFICATE REQUEST----- и заканчиваться -----END CERTIFICATE REQUEST-----, вставляем его:
После чего жмем Check CSR:
Если все хорошо, то жмем Submit.
В течении 30 минут наш сертификат будет подписан:
Ждем письмо. Когда вы получите письмо, вам необходимо перейти по ссылке, ввести капчу согласиться с правилами использования и нажать на кнопку Retrieve.
Качаем архив:
Открываем его и берем файл из for Apache.zip, если у вас сайт работает на Apache или открываете соответствующий вашим требованиям архив. Далее заменяем сам файл domainname.crt или его содержимое на полученное из архива. Как я уже написал выше, у меня сертификат был создан (но не подписан) и подключен при создании домена, поэтому мне остается только перезапустить Apache:
/etc/init.d/apache2 reload
Подключаем SSL сертификат к домену
Если у вас не подключен сертификат то подключите его. Подключить его можно несколькими вариантами:
1 Вариант.
Открываем панель управления сайтами, в настройках домена включаем Защищенное соединение (SSL), а из выпадающего списка выбираем наш сертификат, перезапускаем Apache.
2 Вариант.
Заходим в редактирование хоста /etc/apache2/vhosts/domainname/ и добавляем следующие строки:
SSLEngine on SSLCertificateFile "/path/to/domainname.crt" SSLCertificateKeyFile "/path/to/domainname.key"
Сохраняем и перезапускаем Apache:
/etc/init.d/apache2 reload
Все, теперь у вас есть бесплатный SSL сертификат и рабочий протокол HTTPS на сайте.
Как подключить SSL сертификат на Nginx можно прочитать здесь: Let’s Encrypt. Как бесплатно добавить SSL/TLS сертификат и HTTPS протокол на сайт, пошаговая инструкция
Дополнительно
После удачной настройки HTTPS протокола не забудьте сделать 301 редирект с HTTP на HTTPS. Как это сделать описано здесь, для NGINX: Nginx, 301 на все случаи жизни, для Apache: 301 редирект на все случаи жизни с помощью .htaccess
А так же необходимо настроить подключение внешних скриптов и картинок (внутренних тоже, если указан путь с доменом) на https соединение, например:
<link rel="stylesheet" type="text/css" href="http://devreadwrite.com/style.css" />
заменить на:
<link rel="stylesheet" type="text/css" href="//devreadwrite.com/style.css" />
В таком случае файл будет получен по тому же протоколу в каком был запрошен сайт, в нашем случае https. Или же указать протокол явно.
<link rel="stylesheet" type="text/css" href="https://devreadwrite.com/style.css" />
Комментарии
Супер
ОтветитьМне писмо ждать не пришлось, я верифицировал сертификат и мне сразу предложили его скачать. Загрузил установил на сервер и все отлично работает, спасибо за статью!
ОтветитьТеперь у меня есть бесплатный сертификат на 3 года.
Оценка сертификата "B" \ (•◡•) /
у меня кореш по колдовал и этот сертификат принял оценку А
ОтветитьЗнаем мы этого кореша)))
ОтветитьТеперь верификация домена только по e-mail
Ответить