Nginx-gost

Материал из ALT Linux Wiki
Версия от 16:08, 14 апреля 2020; АндрейЧерепанов (обсуждение | вклад) (Новая страница: «Инструкция по настройке nginx, отдающим страницы с кодированием по ГОСТ-2012. 1. Установка apt…»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Инструкция по настройке nginx, отдающим страницы с кодированием по ГОСТ-2012.

1. Установка

apt-get install nginx

2. Настройка OpenSSL и создание ключей

Подробно рассмотрено в статье ГОСТ в OpenSSL.

3. Создаём каталог /etc/nginx/ssl и кладём туда файлы ca.cer и ca.key.

4. Создаём файл конфигурации /etc/nginx/sites-enabled.d/gost.conf:

server {
        server_name cas;
        listen       443 ssl;
        ssl_certificate /etc/nginx/ssl/ca.cer;
        ssl_certificate_key /etc/nginx/ssl/ca.key;
        ssl_ciphers GOST2012-GOST8912-GOST8912:HIGH:MEDIUM;
        ssl_protocols   TLSv1 TLSv1.1 TLSv1.2;
        ssl_prefer_server_ciphers  on;
        location / {
            proxy_pass http://cas;
        }
}
Примечание: В примере указано имя сервера cas. Укажите имя своего сервера.


4. Активируем конфигурацию:

ln -s ../sites-available.d/default.conf /etc/nginx/sites-enabled.d/default.conf
ln -s ../sites-available.d/gost.conf /etc/nginx/sites-enabled.d/gost.conf

5. Запускаем nginx:

systemctl start nginx

6. Проверяем подключение:

$ openssl s_client -connect cas:443
CONNECTED(00000003)
Can't use SSL_get_servername
depth=0 CN = cas
verify error:num=18:self signed certificate
verify return:1
depth=0 CN = cas
verify return:1
---
Certificate chain
 0 s:CN = cas
   i:CN = cas
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIBeDCCASOgAwIBAgIUTG/tfSoh86afAaE9eq2WXZp3WUgwDAYIKoUDBwEBAwIF
ADAOMQwwCgYDVQQDDANjYXMwHhcNMjAwNDE0MTI0NzA0WhcNMjEwNDE0MTI0NzA0
WjAOMQwwCgYDVQQDDANjYXMwZjAfBggqhQMHAQEBATATBgcqhQMCAiMBBggqhQMH
AQECAgNDAARAdfhTyyzkJWtAP8zHQZLkhRovCBeZZdR1kfmxDWNp+oDZVB/8uj5o
eaTY5SyFzucW6iWz1cJt61wFcw47AKX0mqNQME4wHQYDVR0OBBYEFGMp2jCEAMN9
tfhDL6aAx6PhuSeMMB8GA1UdIwQYMBaAFGMp2jCEAMN9tfhDL6aAx6PhuSeMMAwG
A1UdEwQFMAMBAf8wDAYIKoUDBwEBAwIFAANBAJaFgWKokNIU5rP7alfqwt4O+TGD
1FYqtianivq4TeOFsj1swnVMJxCsb/0ihAOBupojre/FIWRtOaVIXDyPV7Y=
-----END CERTIFICATE-----
subject=CN = cas

issuer=CN = cas

---
No client certificate CA names sent
---
SSL handshake has read 688 bytes and written 518 bytes
Verification error: self signed certificate
---
New, TLSv1.0, Cipher is GOST2012-GOST8912-GOST8912
...

Совет: для работы с таким сервером можно использовать chromium-gost или elinks.