Let’s Encrypt — бесплатный сертификат
Сегодня есть возможность получить абсолютно бесплатно и довольно быстро легальный и корректный сертификат для HTTPS. Для этого нужно воспользоваться услугами https://letsencrypt.org.
Здесь я выкладываю подробную инструкцию по получению сертификата с помощью Let’s Encrypt.
Сначала нужно установить git, если его ещё нет:
apt-get
install git
Затем получаем сам клиент letsencrypt:
1 2 3 |
git
clone https://github.com/letsencrypt/letsencrypt cd
letsencrypt ./letsencrypt-auto
--help |
Команда letsencrypt-auto скачает все необходимые зависимости и обновит исходные коды клиента.
Получение и настройка сертификата для Apache:
./letsencrypt-auto
--apache
Для nginx тоже есть подобная команда, но на текущий момент (декабрь 2015) на официальном сайте написано, что она в стадии бета и могут быть ошибки.
Для всех других платформ нужно использовать командуcertonly.
Для получения сертификата с использованием «standalone» (может потребоваться остановить ваш сервер nginx service nginx stop, или какой там у вас слушает порт 80) сервера для получения.
1 |
./letsencrypt-auto
certonly --standalone -d example.com -d www.example.com |
Вместо example.com нужно подставить ваш домен.
Вам
предложат ввести e-mail, который будет использоваться для важных сообщений
и для восстановления потерянного ключа.
Затем вам нужно будет согласиться с лицензионным соглашением.
Ваш сертификат и вся цепочка сохранится по пути/etc/letsencrypt/live/example.com/
В
этом каталоге будут ссылки на файлы с ключами:
privkey.pem
— приватный ключ для сертификата. Хранить в секрете. Это то, что Apache
требует для SSLCertificateKeyFile, и nginx для ssl_certificate_key.
cert.pem — только сертификат сервера, то что требует Apache для SSLCertificateFile.
chain.pem — все сертификаты, которые должны обслуживаться браузером БЕЗ сертификата сервера. Это Apache требует для SSLCertificateChainFile.
fullchain.pem — вся цепочка, объединение chain.pem и cert.pem. Это nginx требует для ssl_certificate.
Автор: igel