Hello! On Tue, Nov 26, 2019 at 06:42:24AM -0500, vahvarh wrote:
> Аналогичная задача (нужно писать ключи и дамп чтобы найти кто портит > данные), но не помогает. > На апаче сделали, оказалось с nginx приходит, нужно понять приходит ли так и > на nginx или портится внутри него. > > На nginx машине сделали: > > systemctl edit nginx > [Service] > Environment=SSLKEYLOGFILE=/www/sslkeylog.txt > Environment=LD_PRELOAD=/usr/local/lib/libsslkeylog.so > > nginx.conf: > env LD_PRELOAD=/usr/local/lib/libsslkeylog.so; > env SSLKEYLOGFILE=/tmp/premaster.txt; > > systemctl stop nginx; systemctl start nginx > > ИТОГО: > 1) lsof -n -p показывает что libsslkeylog загружен > 2) файл /tmp/ не создает. > 3) cat /proc/.../environ не показывает указанных env > > Возможно это из-за того что nginx старый (nginx version: nginx/1.10.3), но в > документации ничего про такую фигню с env в старых версиях нет. Содержимое /proc/.../environ ничего показывать и не будет, так как environment очищается/устанавливается в уже запущенном рабочем прочессе, и ядро этих изменений не увидит. Кроме того, на Linux'е environment процесса используется для установки заголовка процесса, так что в случае nginx'а там и исходное содержимое затёрто. Почему конкретно libsslkeylog загружается, но не работает - проще всего разбираться, видимо, инструментируя libsslkeylog и/или запуская всё под strace'ом. Just in case, список пришедших в голову возможных причин: - редактируется не тот nginx.conf; - libsslkeylog собран не с той версией OpenSSL, с которой собран/запускается nginx; - у рабочих процессов nginx'а нет прав на запись в /tmp/premaster.txt (в том числе при формальном наличии таковых прав, e.g., из-за какого-нибудь SELinux'а). -- Maxim Dounin http://mdounin.ru/ _______________________________________________ nginx-ru mailing list nginx-ru@nginx.org http://mailman.nginx.org/mailman/listinfo/nginx-ru