Устанавливаем SSL сертификат для сайта. Бесплатно

Drupal / 20 ноября 2015
/ 624

Я и раньше сталкивался с сертификатами, но как-то предпочитал, чтобы с ними возился хостер. Однако жизнь диктует свои условия, пришлось попробовать самому. Мне заказали сайт, который должен работать на https. Целиком и полностью. Для разработки сайта я создал самоподписанный сертификат по этому мануалу и сильно не напрягаясь с ним и работал. Однако когда пришло время показать сайт клиенту, он обиделся, что браузер жалуется и https не зелененький. Не вопрос, покупай товарищ сертификат, и будет тебе зелененький. Но товарищ хочет купить сертификат только тогда, когда сайт будет готов полностью. Но разработка сайта может затянуться на несколько месяцев, поэтому пришлось читать интернет. И тема вроде уже избитая, и писалось много, но нормального описания, чтобы все в одном, я не нашел. Пришлось собирать по кускам. Сертификат я решил установить Comodo, хоть его и не жалуют, зато они дают пробную версию на 90 дней. То что надо. Не буду писать про типы сертификатов, я сам этого ничего не знаю, еще предстоит, хоть поверхностно, но разобраться со всей этой математикой. В общем, начнем:

Имеем сервер типа Digitalocean или что-то подобное с установленным Debian, Nginx, php.

Имеем свой домен, я буду создавать и подключать сертификат для домена itis.by. Я давно купил этот домен – мне вдруг захотелось, но пока не знаю к какому месту его приложить.

Имеем почтовый адрес admin@itis.by.

Имеем руки и свободное время.

Пользуясь случаем, хочется сказать пару лестных слов про любимый браузер Google Chrome. Так вот, без лишних экивоков скажу прямо – Chrome превратился в КУСОК ГОВНА! И если так пойдет дальше, в этом мире нужно что-то менять.

Продолжаем:

1. Заходим в консоль и создаем папку, где будут храниться наши сертификаты:

sudo mkdir /etc/nginx/ssl

2. Даем права:

sudo chown -R root:root /etc/nginx/ssl
sudo chmod -R 600 /etc/nginx/ssl

3. Заходим в нашу папку:

cd /etc/nginx/ssl

4. Создаем CSR:

openssl req -nodes -newkey rsa:2048 -keyout itis.by.key -out itis.by.csr

Здесь и далее itis.by меняем на свой домен, само собой.

5. Вводим данные о нашей организации, стране, владельце и т.д. 
Вводить можете что угодно, главное в Common Name вводим наш домен, у меня itis.by.

6. Идем в папку /etc/nginx/ssl и копируем содержимое файла itis.by.csr в буфер обмена.

7. Идем сюда

и жмакаем кнопку "Free Download".

8. На шаге Step 1: Provide your CSR в окно 1. Copy and paste your CSR into this box вставляем то, что мы скопировали в буфер и в 2. Select the server software used to generate the CSR выбираем nginx, если у вас nginx. Жмем NEXT.

9. Подтверждаем владельца домена. Проще всего по почте.

10. Далее вводим недостающие данные.

11. Соглашаемся с условиями.

12. И попадаем на страниц настройки.

13. В первую очередь вводим код подверждения, который пришел на почту и ждем письмо с сертификатом. Письмо будет содержать архив с сертификатами. Файл itis_by.crt копируем в нашу папку /etc/nginx/ssl.

14. Теперь в файле настроек домена itis.by прописываем следующее:

server {
 listen 443 ssl;
 server_name itis.by;
 ssl on; 
 ssl_certificate /etc/nginx/ssl/itis_by.crt;
 ssl_certificate_key /etc/nginx/ssl/itis.by.key;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;

Если вы хотите, чтобы ваш сайт работал только по https, ввеху добавьте следующее

server {
 listen 80;
 server_name itis.by;
 rewrite ^ https://$host$request_uri? permanent;
}

А если хотите чтобы все работало без www, то в самом начале файла это:

server {
 listen 80;
 server_name www.itis.by;
 listen 443 ssl;
 ssl_certificate /etc/nginx/ssl/itis_by.crt;
 ssl_certificate_key /etc/nginx/ssl/itis.by.key;
 ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 return 301 http://itis.by$request_uri;
}

15. Перезагружаем nginx

service nginx restart

16. Проверяем что получилось на странице настроек.

Жмем Check Now.

17. Все. Должно получиться что-то типа этого.

Еще вариант – получить бесплатный сертификат здесь.

Чтобы получить бесплатный сертификат включите срок 1 год и введите 1 домен. Если надо сертификаты для нескольких сайтов, повторите процедуру, второй раз можно не регистрироваться, на один аккаунт можно получить... не знаю сколько, для 3-х сайтов я получил сертификаты. Все остальное по аналогии. Создаете CSR,  вводите в окно, CSR можно сделать у китайцев, но я предпочел создать на своем сервере, получаете сертификат. 

А с доменом itis.by надо что-то делать. Будем делать сайт...

comments powered by HyperComments