Категорії
Misc, staff, other Solaris WWW

[Nginx] Змушуємо працювати openssl-3 з ключами 1024 біт

Проблема виглядає наступним чином: є зібраний nginx з openssl-3, але є старі клієнтські сертифікати з ключам 1024 біта і відповідно, стандартним чином воно не працює, бо для openssl-3 ключ повинен бути мінімум 2048 біт і маємо помилку:

"FAILED:CA certificate key too weak"

Рішення просте – CipherString = DEFAULT@SECLEVEL=0, але не хочеться ламати все інше на цьому хості, тому просто так вставити це в /etc/ssl/openssl.cnf не можна.

Виявляється, можна через ENV в nginx передавати OPENSSL_CONF, де вказати шлях до кастомного файлу openssl.cnf.

Створюємо /etc/nginx/ssl/admin/openssl.cnf такого змісту:

[openssl_init]
providers = provider_sect
alg_section = evp_properties
ssl_conf = ssl_configuration

...

[ssl_configuration]
system_default = tls_system_default

[tls_system_default]
MinProtocol = TLSv2
CipherString = DEFAULT@SECLEVEL=0

Додаємо ENV до сервісу:

# svccfg -s nginx setenv OPENSSL_CONF /etc/nginx/ssl/admin/openssl.cnf
# svcadm refresh nginx
# svcadm restart nginx

І перевіряємо чи використовує його nginx:

# /usr/dtrace/DTT/opensnoop | grep openssl.cnf
     0 539319 nginx          4 /etc/nginx/ssl/admin/openssl.cnf

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *

Домашняя страничка Andy
Записки молодого админа
Самостоятельная подготовка к Cisco CCNA
Самостоятельная подготовка к Cisco CCNP