ssl, tls, сертификаты и так далее
Добавлено: 01 фев 2015, 20:29
Введение:
Рано или поздно все люди задумываются о безопасности. Кто-то покупаем новый замок, что бы обезопасить свой дом, кто-то газовый баллончик для себя... Мы же будем защищать свои данные.
Задача:
Давайте составим техзадание.
Задача: обезопасить наши соединения со своим сервером.
Соединения: сайт, почта
Сайт: 80 порт - сделать ничего не можем, кроме как переадресовывать на https - то есть поднимаем https - 443 порт
Почта: 25 порт - никуда не деться - могут быть сервера с несознательными админами - если просто запретить все нешифрованные соединения можно что-то пропустить. Но поднимать шифрование надо - значит 465 порты. так же надо ещё и отдавать почту клинету. Я буду использовать imap-протокол и его секьюрную версию - значит 993 порт.
Решение:
Ну а начнём мы не с этого всего, а с получения сертификата. Нет, ну можно и самоподписанный сделать, но зачем, если бесплатно раздают валидные?
Итак, идём на сайт https://www.startssl.com и регистрируемся. Вам на почту прийдёт (мгновенно) код проверки - вставляете его на сайт и заканчивайте регистрацию. Тут же с сайта вам свалится сертификат, который надо установить в систему - это будет ваш логин-пароль на этот сайт в дальнейшем.
Заходим уже под собой на сайт и генерируем себе сертификат - он выдаётся на доменное имя - в моём случае это будет mail.cz6.ru - таким образом я сразу себе понимаю, что вебморда, приём и отправка почты у меня будет происходить по адресу mail.cz6.ru - если у вас будут разные доменные имена, типа smtp.cz6.ru - вам прийдётся делать на сайте несколько сертификатов. Ну да ладно - это не сложно: В результате этих действий у нас на сервере появилось 2 файла - если следовать рекомендациям - это ssl.key и ssl.crt - скачаем к ним третий
Но и этого нам мало - дело в том, что мы создали сертификат с паролем и, что бы запустить программу, надо будет каждый раз этот пароль вводить. Ну или писать его в конфиг. Но от него можно избавиться - создадим ключ без пароля
Теперь всё - из этих файлов мы будем готовить для каждой программы свой рецепт.
Рано или поздно все люди задумываются о безопасности. Кто-то покупаем новый замок, что бы обезопасить свой дом, кто-то газовый баллончик для себя... Мы же будем защищать свои данные.
Задача:
Давайте составим техзадание.
Задача: обезопасить наши соединения со своим сервером.
Соединения: сайт, почта
Сайт: 80 порт - сделать ничего не можем, кроме как переадресовывать на https - то есть поднимаем https - 443 порт
Почта: 25 порт - никуда не деться - могут быть сервера с несознательными админами - если просто запретить все нешифрованные соединения можно что-то пропустить. Но поднимать шифрование надо - значит 465 порты. так же надо ещё и отдавать почту клинету. Я буду использовать imap-протокол и его секьюрную версию - значит 993 порт.
Решение:
Ну а начнём мы не с этого всего, а с получения сертификата. Нет, ну можно и самоподписанный сделать, но зачем, если бесплатно раздают валидные?
Итак, идём на сайт https://www.startssl.com и регистрируемся. Вам на почту прийдёт (мгновенно) код проверки - вставляете его на сайт и заканчивайте регистрацию. Тут же с сайта вам свалится сертификат, который надо установить в систему - это будет ваш логин-пароль на этот сайт в дальнейшем.
Заходим уже под собой на сайт и генерируем себе сертификат - он выдаётся на доменное имя - в моём случае это будет mail.cz6.ru - таким образом я сразу себе понимаю, что вебморда, приём и отправка почты у меня будет происходить по адресу mail.cz6.ru - если у вас будут разные доменные имена, типа smtp.cz6.ru - вам прийдётся делать на сайте несколько сертификатов. Ну да ладно - это не сложно: В результате этих действий у нас на сервере появилось 2 файла - если следовать рекомендациям - это ssl.key и ssl.crt - скачаем к ним третий
Код: Выделить всё
root@mail:/usr/local/etc/nginx/ssl/mail # fetch http://www.startssl.com/certs/sub.class1.server.ca.pem
sub.class1.server.ca.pem 100% of 2212 B 3349 kBps 00m00s
root@mail:/usr/local/etc/nginx/ssl/mail #
Код: Выделить всё
root@mail:/usr/local/etc/nginx/ssl/mail # openssl rsa -in ./ssl.key -out ./ssl-nopass.pem
Enter pass phrase for ./ssl.key:
writing RSA key
root@mail:/usr/local/etc/nginx/ssl/mail #