Бесплатный ssl сертификат? Пожалуйста!!!

Как получить ssl сертификат

Для этого воспользуемся китайским сервисом WoSign. Поэтапные шаги для получения сертификата выложены в слайдере ниже

Поскольку сайт WoSign китайский и интерфейс весь на китайском языке, то удобнее всего будет использовать Google Chrome
  1. Переходим по адресу https://login.wosign.com
  2. Переводим интерфейс на английский
  3. Для нового пользователя необходима регистрация. В правом верхнем углу нажимаем Sign up now
Мы попали на форму регистрации. Вводим
  1. Почтовый адрес
  2. Пароль
  3. Подтверждение пароля
  4. Код с капчи
  5. Нажимаем зеленую кнопку
На почтовый ящик должна прийти ссылка для активации
  1. Нажимаем на нее
Получаем сообщение об успешной активации с предложением скачать сертификат для входа в кабинет
  1. Переходим по адресу https://login.wosign.com
  2. В правой части сайта, в блоке из двух закладок выбираем закладку с Account password +
  3. Водим почтовый ящик на который регистрировались
  4. Пароль
  5. Код с капчи
  6. Жмем Login
  1. Переходим на https://buy.wosign.com/FreeSSL.html
  2. В Domain name вводим имя домена. Будет сгенерирован бандл для domain.tld и www.domain.tld. Если домен с www не нужен, то жмем No need to bind this domain name
  3. Вводим код с капчи
  4. Давим Submit request
Заявка на генерацию сертификата подана, указано время, срок на который будет выдан сертификат, в данном случае два года, и нулевая цена. Это приятно 🙂
  1. Жмем Domain control verification
В этой форме видно имя домена для которого будет сгенерирован сертификат. Необходимо выбрать способ подтверждения того, что данный домен Ваш. Есть два способа:
  1. Закладка Domain control verification. На почтовый адрес (выбираем нужный) будет выслан код активации, который вводим в секцию Verification code. Вводим капчу и давим Verify now
  2. Закладка Website control verification. В этом случае нам предложат файл, который необходимо положить в корень Вашего сайта
В левую секцию необходимо скопипастить результат генерации csr запроса. Для этого выполняем следующие действия из командной строки (необходимо иметь установленный в системе openssl)
  1. openssl genrsa -des3 -out mydomain.key 4096 (генерируем секретный ключ, попросит ввести пароль, вводим его)
  2. openssl rsa -in mydomain.key -out mydomain.key (снимаем введеный пароль, иначе всякий раз при старте веб-сервиса будет запрашиваться этот пароль)
  3. openssl req -new -key mydomain.key -out mydomain.csr (генерируем csr запрос)
  1. Содержимое файла mydomain.csr, которое находится между секциями -----BEGIN CERTIFICATE REQUEST----- и -----END CERTIFICATE REQUEST----- копипастим в левую секцию
  2. Жмем Check CSR
Если в предыдущем шаге все было сделано правильно, то в правой секции видно будет алгоритм шифрования и длина ключа
  1. Жмем Submit
Принимаем поздравления и скачиваем архив с сертификатами для популярных веб-серверов (Nginx, Apache, IIS, Other servers)

Переход на https в nginx

Беру ранее сгенерированый ключ, полученный сертификат для nginx и привожу конфиг-файл сайта к следующему виду

server {
 listen 80;
 server_name mydomain.tld www.mydomain.tld;
 rewrite ^ https://$host$1 permanent;
}

server {
 listen 443 ssl http2;
 server_name mydomain.tld;
 ...
 ssl_session_cache shared:SSL:10m;  
 ssl_session_timeout 10m;
 ssl_prefer_server_ciphers on;
 ssl_ciphers EECDH+ECDSA+AESGCM:EECDH+aRSA+AESGCM:EECDH+ECDSA+SHA384:EECDH+ECDSA+SHA256:EECDH+aRSA+SHA384:EECDH+aRSA+SHA256:EECDH:!EDH+aRSA:!aNULL:!eNULL:!LOW:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS:!RC4;
 ssl_protocols TLSv1.2;
 ssl_certificate /etc/ssl/nginx/mydomain.tld/1_mydomain_bundle.crt;
 ssl_certificate_key /etc/ssl/nginx/mydomain.tld/2_mydomain.key;
 add_header Strict-Transport-Security 'max-age=15552001';
 ssl_stapling on;
 resolver 127.0.0.1;
 ...
}

Подробности по параметрам смотрим тут

Проверка такой настройки на SSL LABS показала мне

бесплатный ssl сертификат

Прекрасно. В адресной строке хрома теперь видно зелёный замочек

Важно!!!

Касается высоко нагруженных проектов, в случае если пользователь периодически возвращается. Директиву add_header Strict-Transport-Security внедряем уже после того, как все проверили при помощи 301 редитекта с 80-го порта на порт 443. При помощи данной директивы будет выполнен  принудительный переход клиента с http на https. Если клиент придет по http протоколу, то получит в ответ Strict-Transport-Security ‘max-age=15552001’, что и будет закешировано на стороне клиента на время max-age, в данном случае 180 дней + 1 секунда. Следующее соединение клиент сделает сразу по протоколу https. Наличие этой директивы позволит снизить нагрузку на процессор и является последним штрихом к получению оценки A+ от ssllab

Если проект не высоконагруженный то можно установить max-age=600, тоесть 10 минут

Александр Черных
системный администратор

Статьи по теме

0