Ошибка подключения модуля ModSecurity к openresty (libk5crypto.so.3: undefined symbol: EVP_KDF_ctrl) в CentOS 8
Прошу подсказать возможные пути решения возникшей проблемы.
Пытаюсь подключить ModSecurity к openresty.
Установил openresty из репозитория, скачал исходники ModSecurity, ModSecurity-nginx, openresty.
Скомпилировал и установил модуль ModSecurity (./configure & make & make install).
Собрал openresty с коннектором ModSecurity-nginx (./configure --with-compat --add-dynamic-module=../ModSecurity/ModSecurity-nginx).
Скопировал файл модуля ngx_http_modsecurity_module.so в папку модулей веб-сервиса.
Подключил модуль ngx_http_modsecurity_module.so в файле конфигурации nginx .
Добавил OWASP rules.
Удалил неиспользуемые или конфликтующие правила.
openresty -t
nginx: [emerg] dlopen() "/usr/local/openresty/nginx/modules/ngx_http_modsecurity_module.so" failed (/lib64/libk5crypto.so.3: undefined symbol: EVP_KDF_ctrl, version OPENSSL_1_1_1b) in /usr/local/openresty/nginx/conf/nginx.conf:11
nginx: configuration file /usr/local/openresty/nginx/conf/nginx.conf test failed
Причём на оригинальном nginx конфликта с криптобиблиотекой от OpenSSL не возникало.
Вывод NGINX сообщает об отсутствии функции EVP_KDF_ctrl в /lib64/libk5crypto.so, тогда как она есть /usr/lib64/libcrypto.so
При этом дампирование показало, что такой функции (EVP_KDF_ctrl) нет в /usr/local/openresty/openssl111/lib/libcrypto.so.1.1 (но, повторюсь, она есть в общесистемной библиотеке, которую использует nginx):
readelf -Ws /usr/local/openresty/openssl111/lib/libcrypto.so.1.1 | grep EVP_KDF
readelf -Ws /usr/lib64/libcrypto.so.1.1 | grep EVP_KDF
626: 0000000000170530 240 FUNC GLOBAL DEFAULT 13 EVP_KDF_ctrl@@OPENSSL_1_1_1b
...
Временным решением проблемы может стать переименование файла библиотеки libcrypto в рабочем каталоге openresty с тем, чтобы он обращался к общесистемной библиотеке, но хотелось бы понять:
- Каким образом можно собрать openresty, чтобы в его библиотеке libcrypto (openresty-openssl) была функция EVP_KDF_ctrl
- Зачем вообще модуль ModSecurity использует функции openssl (libcrypto)?