Пользовательские сертификаты
Начиная с версии 2.5, YunoHost интегрирует автоматическое управление сертификатами Let's Encrypt. Вы можете легко и бесплатно установить сертификат Let's Encrypt. В данном документе описаны шаги по установке платного сертификата от центра сертификации (Gandi, RapidSSL, StartSSL, Cacert).
Произошли некоторые изменения, которые затрагивают указанные ниже процедуры:
- Группа Metronome больше не используется напрямую, а используется ssl-cert.
- Для хранения каждой созданной конфигурации используется каталог
/etc/yunohost/certs/DOMAIN.LTD-history/stamp, и создается символическая ссылка.
Добавление подписанного центра сертификации (кроме Let's Encrypt)
После создания сертификата в вашем регистрационном центре у вас должен быть закрытый ключ (файл ключа) и открытый сертификат (файл crt).
Обратите внимание, что ключевой файл является очень конфиденциальным, он носит строго личный характер и должен быть надёжно защищён.
Эти два файла следует скопировать на сервер, если их там ещё нет.
scp CERTIFICATE.crt admin@DOMAIN.TLD:ssl.crt
scp KEY.key admin@DOMAIN.TLD:ssl.key
В Windows scp можно использовать с Putty, для этого нужно загрузить инструмент pscp
pscp -P 22 CERTIFICATE.crt admin@DOMAIN.TLD:ssl.crt
pscp -P 22 KEY.key admin@DOMAIN.TLD:ssl.key
Как только файлы окажутся на сервере, остальная работа будет выполнена на нём. Через ssh или локально. Сначала создайте папку для хранения полученных сертификатов.
sudo mkdir /etc/yunohost/certs/DOMAIN.TLD/ae_certs
sudo mv ssl.key ssl.crt /etc/yunohost/certs/DOMAIN.TLD/ae_certs/
Затем перейдите в родительскую папку, чтобы продолжить.
cd /etc/yunohost/certs/DOMAIN.TLD/
В качестве меры предосторожности рекомендуется создать резервную копию сертификатов происхождения от YunoHost.
sudo mkdir yunohost_self_signed
sudo mv *.pem *.cnf yunohost_self_signed/
В зависимости от регистрирующего органа, необходимо получить промежуточные и основные сертификаты.
StartSSL
sudo wget http://www.startssl.com/certs/ca.pem -O ae_certs/ca.pem
sudo wget http://www.startssl.com/certs/sub.class1.server.ca.pem -O ae_certs/intermediate_ca.pem
Gandi
sudo wget https://www.gandi.net/static/CAs/GandiStandardSSLCA2.pem -O ae_certs/intermediate_ca.pem
RapidSSL
sudo wget https://knowledge.rapidssl.com/library/VERISIGN/INTERNATIONAL_AFFILIATES/RapidSSL/AR1548/RapidSSLCABundle.txt -O ae_certs/intermediate_ca.pem
Cacert
sudo wget http://www.cacert.org/certs/root.crt -O ae_certs/ca.pem
sudo wget http://www.cacert.org/certs/class3.crt -O ae_certs/intermediate_ca.pem
Промежуточные и корневые сертификаты необходимо объединить с полученным сертификатом для создания единой цепочки сертификатов.
cat ae_certs/ssl.crt ae_certs/intermediate_ca.pem ae_certs/ca.pem | sudo tee crt.pem
Закрытый ключ необходимо преобразовать в формат .pem.
sudo openssl rsa -in ae_certs/ssl.key -out key.pem -outform PEM
Для проверки синтаксиса сертификатов проверьте содержимое файлов.
cat crt.pem key.pem
Сертификаты и закрытый ключ должны выглядеть следующим образом:
-----BEGIN CERTIFICATE-----
MIICVDCCAb0CAQEwDQYJKoZIhvcNAQEEBQAwdDELMAkGA1UEBhMCRlIxFTATBgNV
BAgTDENvcnNlIGR1IFN1ZDEQMA4GA1UEBxMHQWphY2NpbzEMMAoGA1UEChMDTExC
MREwDwYDVQQLEwhCVFMgSU5GTzEbMBkGA1UEAxMSc2VydmV1ci5idHNpbmZvLmZy
MB4XDTA0MDIwODE2MjQyNloXDTA0MDMwOTE2MjQyNlowcTELMAkGA1UEBhMCRlIx
FTATBgNVBAgTDENvcnNlIGR1IFN1ZDEQMA4GA1UEBxMHQWphY2NpbzEMMAoGA1UE
ChMDTExCMREwDwYDVQQLEwhCVFMgSU5GTzEYMBYGA1UEAxMPcHJvZi5idHNpbmZv
LmZyMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDSUagxPSv3LtgDV5sygt12
kSbN/NWP0QUiPlksOkF2NkPfwW/mf55dD1hSndlOM/5kLbSBo5ieE3TgikF0Iktj
BWm5xSqewM5QDYzXFt031DrPX63Fvo+tCKTQoVItdEuJPMahVsXnDyYHeUURRWLW
wc0BzEgFZGGw7wiMF6wt5QIDAQABMA0GCSqGSIb3DQEBBAUAA4GBALD640iwKPMf
pqdYtfvmLnA7CiEuao60i/pzVJE2LIXXXbwYjNAM+7Lov+dFT+b5FcOUGqLymSG3
kSK6OOauBHItgiGI7C87u4EJaHDvGIUxHxQQGsUM0SCIIVGK7Lwm+8e9I2X0G2GP
9t/rrbdGzXXOCl3up99naL5XAzCIp6r5
-----END CERTIFICATE-----
Наконец, защитите файлы сертификатов.
sudo chown root:ssl-cert crt.pem key.pem
sudo chmod 640 crt.pem key.pem
sudo chown root:root -R ae_certs
sudo chmod 600 -R ae_certs
Теперь сертификаты (два файла с расширением .pem) еобходимо скопировать в /etc/yunohost/certs/DOMAIN.TLD.
cp ae_certs/*.pem ./
Перезагрузите конфигурацию NGINX, чтобы учесть новый сертификат.
sudo service nginx reload
Ваш сертификат готов. Однако вы можете убедиться в его работоспособности, проверив сертификат с помощью geocerts.