...
Info |
---|
Для установки NGINX, должен быть подключен и настроен репозиторий пакетов nginx. Если это небыло сделано автоматически, добавьте репозиторий вручную. |
Ручное добавление репозитория nginx
RHEL и производные дистрибутивы
Установите пакеты, необходимые для подключения yum-репозитория:
...
|
Debian и производные дистрибутивы
Установите пакеты, необходимые для подключения apt-репозитория:
...
|
Установка nginx
Чтобы установить nginx, выполните следующую команду:
RHEL и производные дистрибутивы
|
В случае запроса подтверждения GPG-ключа проверьте, что отпечаток ключа совпадает с 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62.
Debian и производные дистрибутивы
|
Документация по установке на прочие ОС доступна на официальном портале продукта.
Выпуск SSL/TLS сертификата
Для настройки защищенного соединения необходимо выпустить SSL/TLS сертификат на имя машины с установленным nginx.
Возможно выпустить самоподписанный сертификат или сертификат с УЦ.
Самоподписанный сертификат
Создать самоподписанный сертификат утилитой openssl (необходимо подставить название машины с nginx вместо SERVERNAME.DOMAIN):
sudo
openssl req -x509 -nodes -addext
"subjectAltName=DNS:SERVERNAME.DOMAIN,DNS:www.SERVERNAME.DOMAIN"
-days 730 -newkey rsa:2048 -keyout
/etc/ssl/private/SSL
.key -out
/etc/ssl/private/SSL
.crt
Добавить сертификат в доверенные на локальной машине в соответствии с выбранной для настройки ОС.
Например, для RHEL и производных дистрибутивов:
sudo
cp
/etc/ssl/private/SSL
.crt
/etc/pki/ca-trust/source/anchors/SSL
.crt
sudo
update-ca-trust extract
Для Debian и производных дистрибутивов:
sudo
cp
/etc/ssl/private/SSL
.crt
/usr/local/share/ca-certificates/
sudo
update-ca-certificates -f
- Сделать сертификат доверенным в домене, например, с помощью групповых политик.
Выпуск сертификата на УЦ
Выпустить сертификат на УЦ, например, Microsoft CA, экспортировать данный сертификат в формате .pfx на машину с установленным nginx (с закрытым ключом, с цепочкой корневых/промежуточных УЦ), и сертификат корневого УЦ.
Warning Субъект (Subject) сертификата должен содержать FQDN сервера Rutoken KeyBox.
Дополнительное имя субъекта (Subject Alternative Name) сертификата должно содержать атрибут DNS-имя (DNS Name) (FQDN сервера Rutoken KeyBox). Например: redos.demo.local или соответствующую запись с подстановочными знаками, например: *. demo.local (Wildcard certificate).
Улучшенный ключ (Enhanced Key Usage) сертификата должен содержать значение Проверка подлинности сервера (Server Authentication).Добавить сертификат корневого УЦ в доверенные на машине с установленным nginx.
Для RHEL и производных дистрибутивов:sudo
cp
.
/root-ca
.crt
/etc/pki/ca-trust/source/anchors/
sudo
update-ca-trust extract
Для Debian и производных дистрибутивов:
sudo
cp
.
/root-ca
.crt
/usr/local/share/ca-certificates/
sudo
update-ca-certificates -f
Разделить .pfx сертификат на файл цепочки сертификатов и ключ, сделать файл ключа без пароля (необходимо подставить имя импортированного файла вместо PFXFILE):
openssl pkcs12 -
in
PFXFILE.pfx -chain -nokeys |
sed
-
ne
'/-BEGIN CERTIFICATE/,/END CERTIFICATE/p'
> SSL.crt
openssl pkcs12 -
in
PFXFILE.pfx -nocerts -out SSLencrypted.key
openssl rsa -
in
SSLencrypted.key -out SSL.key
Файл цепочки сертификатов должен быть следующего вида:
-----BEGIN CERTIFICATE-----
#Ваш сертификат#
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
#Промежуточный сертификат#
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
#Корневой сертификат#
-----END CERTIFICATE-----
Скопировать файлы цепочки сертификатов и ключа в папку, которая будет указана в файле конфигурации nginx:
sudo
cp
.
/SSL
.crt
/etc/ssl/private/
sudo
cp
.
/SSL
.key
/etc/ssl/private/
Настройка конфигурационного файла
Для работы Рутокен KeyBox требуется настроить nginx, чтобы он обслуживал запросы и отправлял их на проксируемый адрес (сервис RutokenKeyBox).
Как работают nginx и его модули, определяется в конфигурационном файле, по умолчанию он называется nginx.conf и в зависимости от операционной системы расположен в каталоге /usr/local/nginx/conf, /etc/nginx или /usr/local/etc/nginx.
...
Изменения, сделанные в конфигурационном файле, не будут применены, пока nginx не будет отправлена команда перезагрузить конфигурацию или он не будет перезапущен. Для перезагрузки конфигурации выполните команду:
|