
Я и раньше сталкивался с сертификатами, но как-то предпочитал, чтобы с ними возился хостер. Однако жизнь диктует свои условия, пришлось попробовать самому. Мне заказали сайт, который должен работать на 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 надо что-то делать. Будем делать сайт...