Letsencrypt

Настройка apache 2.4 и nginx для работы с сертификатами от letsencrypt и получения A+ на ssllabs.com

Прописываем package.keywords, версии пакетов актуальны на момент написания заметки.

=dev-python/pyrfc3339-1.0 =dev-python/pythondialog-3.3.0-r200 =dev-python/parsedatetime-1.5 =dev-python/zope-component-4.2.2 =app-crypt/acme-0.1.0-r1 =dev-python/pyopenssl-0.15.1 =dev-python/zope-event-4.0.3 =app-crypt/letsencrypt-0.1.0-r1

Ставим

# emerge app-crypt/letsencrypt

Создаём эккаунт

# letsencrypt certonly --email letsencrypt@tld.ru --agree-tos

Скрипт попросит ввести имена наших доменов, ничего не вводим, нажимаем Enter. Проверяем, что эккаунт создан:

# ls -lhA /etc/letsencrypt/accounts/acme*/directory/ drwx------ 2 root root 144 Dec 32 25:66 809b2c3ed9000435baea444dc4689999

Генерация сертификатов.

Составляем список доменных имён, для которых надо создать сертификаты. Для меня это два списка:

# 1й список www.sabitov.ru sabitov.ru cidr.sabitov.ru doc.sabitov.ru reader.sabitov.ru wolf.sabitov.ru sabitov.su cidr.sabitov.su doc.sabitov.su reader.sabitov.su wolf.sabitov.su www.sabitov.su sabitov.pp.ru cidr.sabitov.pp.ru doc.sabitov.pp.ru reader.sabitov.pp.ru wolf.sabitov.pp.ru www.sabitov.pp.ru # 2й список wiki.sabitov.ru wiki.sabitov.su wiki.sabitov.pp.ru

Стопаем www-сервер, который слушает 80й порт, запрашиваем сертификаты, стартуем www-сервер обратно.

# /etc/init.d/nginx stop # letsencrypt -vv certonly --rsa-key-size 4096 -d www.sabitov.ru -d sabitov.ru -d cidr.sabitov.ru -d doc.sabitov.ru -d reader.sabitov.ru -d wolf.sabitov.ru -d sabitov.su -d cidr.sabitov.su -d doc.sabitov.su -d reader.sabitov.su -d wolf.sabitov.su -d www.sabitov.su -d sabitov.pp.ru -d cidr.sabitov.pp.ru -d doc.sabitov.pp.ru -d reader.sabitov.pp.ru -d wolf.sabitov.pp.ru -d www.sabitov.pp.ru # letsencrypt -vv certonly --rsa-key-size 4096 -d wiki.sabitov.ru -d wiki.sabitov.su -d wiki.sabitov.pp.ru # /etc/init.d/nginx start # ls -lhA /etc/letsencrypt/live/

Последняя команда покажет две директории: wiki.sabitov.ru и www.sabitov.ru. Что важно:

DNS-имя, указанное первым, будет указано как CN в сертификате, остальные имена пойдут в алиасы.

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

Качаем корневой сертификат:

# cd /etc/letsencrypt/csr # wget https://letsencrypt.org/certs/lets-encrypt-x1-cross-signed.pem

Настройка nginx

Tracedump:

newBaseSize: 16pt
newBaseSizeInPt: 16