Создание сертификата ssl (Ubuntu)

ssl[1]Apache 2 умеет работать по защищенному протоколу в рамках которого всё передаваемая информация шифруется сервером и клиентом по криптографическому протоколу SSL. Это значит, что даже перехвативший запросы клиента и страницы возвращаемые сервером — не сможет посмотреть содержание этих запросов и этих страниц. Как минимум, все эти данные постоянно оседают у провайдера и если, например, его гнусный сотрудник захочет, то легко узнает те пароли, которые вы отправляете на многие сайты в POST- или GET-запросах.

Для собственного сервера вам, как минимум, следует беречь пароли от баз данных, вбвиаемые в веб-морду phpMyAdmin.

Для того, чтобы организовать шифрованную передачу по протоколу SSL требуется специальный на сервере. Его подтверждают (обычно за деньги) всякие серьёзные центры по сертификации. Но можно сгененрировать и самостоятельно — такой называется самоподписным, потому что никакой центр аттестации его не подтверждает, а подтверждаете лично вы.

Понятно, что для сайтов из мира электронной коммерции (особенно для тех, где имеется некий личный кабинет с каким-то счётом, который может быть злоумышленником опустошён) применять требуется полноценные сертификаты, подтверждённые авторитетным центром, а для сайтов не хранящих какие-то важные пользовательские данные — шифрование вообще ни к чему (ещё и нагрузку на сервер создаёт же), но для собственных нужд (вроде упомянутого phpMyAdmin`а) — сойдём и самоподписной.

Активируем соответствующий модуль Apache2, сделать это в любимом дистрибутиве можно так:
sudo a2enmod

Создаём свой ключ для шифрования:
sudo openssl genrsa -des3 -out server.key 1024

В конце потребуется пару раз ввести (задать и подтвердить) пароль для вашего ключа. Тут всё стандартно: не забывайте свой пароль, но и не записывайте его на стикере в углу монитора. Минимально допустимая длина пароля тут — 4 символа, но рекомендуется задать пароль в 8+ символов, да такой, чтоб он содержал буквы разных регистров и цифры.

Можно создать не шифрованную копию ключа вот так:
sudo openssl rsa -in server.key -out server.key.insecure

И для удобства это лучше сделать: иначе при каждой (ре-)активации хоста с SSL потребуется вводить пароль.

Плюс вот в чём: не придётся вводить пароль при запуске сервера.

Создав не шифрованную копию, давайте далее использовать именно её, поэтому совершим пару переименований (в результате которых, ключ с паролем окажется в файлеserver.key.secure и далее нами использоваться не будет):
sudo mv server.key server.key.secure
sudo mv server.key.insecure server.key

Теперь будем создавать CSR, это тоже просто:
sudo openssl req -new -key server.key -out server.csr

Вас попросят сообщить информацию о себе, в принципе (поскольку сертификат мы создаём самоподписной) можно ничего не сообщать, тупо вводя пустые ответы. Но если вы захотите получить «настоящий» сертификат CA, то все данные, конечно, надо заполнить, притом указывая достоверные значения.

Но перейдём к процессу самоподписания:
sudo openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

Сертификат на этом, кстати, готов. Теперь надо скопировать файлы куда положено (чтоб их увидел Apache2) и настроить на обработку ssl сам веб-сервер.

Копируем ключи:
sudo cp server.crt /etc/ssl/certs
sudo cp server.key /etc/ssl/private

Теперь настроим на использование SSL виртуальный хост, я сделаю это с хостом по умолчанию, который обязательно доступен сразу после установки Apache.

Оригинал: http://aboutubuntu.ru/apache-ssl-https-ubuntu.html

Запись навигация

Top