Интернет сейчас массово переходит на защищенные протоколы, пора и нам перевести наш сайт на HTTPS. Официальный сайт Let's Encrypt.
Скачиваем исходники к себе в домашнюю директорию:
$ git clone https://github.com/letsencrypt/letsencrypt
$ cd letsencrypt
$ ./letsencrypt-auto --help
Для автоматического получения будем использовать плагин webroot. Добавляем location в наш конфиг nginx нашего сайта:
server {
listen 80;
server_name pnixx.ru;
location '/.well-known/acme-challenge' {
default_type "text/plain";
root /tmp/letsencrypt-auto;
}
location / {
return 301 https://pnixx.ru$request_uri;
}
}
Создаем директорию /tmp/letsencrypt-auto (вы можете использовать любую другую директорию)
. Перезагружаем сервер:
$ sudo /etc/init.d/nginx reload
Создаем файл renew.sh в директории letsencrypt. Этот файл будет обновлять наши сертификаты.
#!/bin/bash
mkdir -p /tmp/letsencrypt-auto
letsencrypt-auto renew
sudo /etc/init.d/nginx reload
exit 0
Создаем директорию, где будут храниться конфиги /etc/letsencrypt
. Создаем файл конфига cli.ini:
# Use a 4096 bit RSA key instead of 2048
rsa-key-size = 4096
# Always use the staging/testing server
#server = https://acme-staging.api.letsencrypt.org/directory
server = https://acme-v01.api.letsencrypt.org/directory
# Указываем адрес почты домена
email = info@pnixx.ru
# Плагин обновления сертификата
authenticator = webroot
webroot-path = /tmp/letsencrypt-auto
Можно кинуть симлинк для быстрого доступа к пакету:
$ ln -s /path/to/letsencrypt/letsencrypt-auto /usr/bin/
Пробуем получить сертификат:
$ letsencrypt-auto certonly -c /etc/letsencrypt/cli.ini -d pnixx.ru -d www.pnixx.ru
Сертификат получили, прописываем у нашего основного сервера полученные сертификаты:
server {
listen 443 ssl;
server_name pnixx.ru;
ssl on;
ssl_certificate /etc/letsencrypt/live/pnixx.ru/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/pnixx.ru/privkey.pem;
...
}
Перезагружаем сервер:
$ sudo service nginx reload
Прописываем в крон ежемесечное обновление сертификата:
@monthly /path/to/letsencrypt/renew.sh
Удачи всем.
P.Nixx, 30.01.2016, 17:09