alibek Опубликовано 25 марта, 2020 · Жалоба Есть веб-сервер на PHP, работающий на Apache и использующий HTTPS и клиентские сертификаты. В конфигурацию добавлена строчка SSLOptions +ExportCertData +StdEnvVars, благодаря которой веб-сервер в переменных окружения видит пачку соответствующих переменных SSL_SERVER_* и SSL_CLIENT_*. Все работает, но это снижает производительность. При этом меня в клиентском сертификате интересует обязательно Email и желательно CN и T. Можно ли экспортировать только эти три поля? Через установку отдельных переменных (SetEnv) это работает еще медленнее, чем StdEnvVars. Сейчас работает "костыль" в виде директивы SSLUserName SSL_CLIENT_S_DN_Email и использования переменной окружения REMOTE_USER, программу-минимум он выполняет. Но хотелось бы получить CN и T. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vop Опубликовано 25 марта, 2020 · Жалоба Что значит "работает медленнее"? Это как вы замеряли? Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
alibek Опубликовано 25 марта, 2020 · Жалоба Если без ab-тестов, то навскидку раза в 3-4 медленнее. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vop Опубликовано 25 марта, 2020 · Жалоба Апач разбирает структуру x509 библиотекой openssl. Я не знаю никакой другой библиотеки, которая будет разбирать структуру быстрее (не забываем, что это делается каждый раз при https коннекте независимо от того, есть переменные, или их нет). Переменные окружения она делает сразу линейным списком, что делается практически со скоростью выделения памяти malloc, и по сути, особо не зависит от количества переменных. Честно говоря, я даже не знаю, чем можно измерить накладные расходы на разбор структуры сертификата и заполнение переменных. Я думаю, что текст php страницы интерпретируются на порядки дольше, чем происходят обсуждаемые процедуры. Это я к тому, что ищите, в чем может быть проблема. Может что-то там с чтением этих переменных скриптом или еще что? Апач точно не должен тормозить по этому поводу. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vop Опубликовано 25 марта, 2020 · Жалоба 11 hours ago, alibek said: Можно ли экспортировать только эти три поля? Не обратил внимание на этот вопрос. Если вам не нужен сам сертификат, то -ExportCertData, а если хотите некоторых переменных их стандартного набораSSL, Можете похачить апачу. Либо закомментировав ненужные переменные, либо добавив собственный define, либо вообще добавив собственный параметр в конфиг для SSLOptions: modules/ssl/ssl_engine_kernel.c: static const char *ssl_hook_Fixup_vars[] = { "SSL_VERSION_INTERFACE", "SSL_VERSION_LIBRARY", "SSL_PROTOCOL", "SSL_SECURE_RENEG", "SSL_COMPRESS_METHOD", "SSL_CIPHER", "SSL_CIPHER_EXPORT", "SSL_CIPHER_USEKEYSIZE", "SSL_CIPHER_ALGKEYSIZE", "SSL_CLIENT_VERIFY", "SSL_CLIENT_M_VERSION", "SSL_CLIENT_M_SERIAL", "SSL_CLIENT_V_START", "SSL_CLIENT_V_END", "SSL_CLIENT_V_REMAIN", "SSL_CLIENT_S_DN", "SSL_CLIENT_I_DN", "SSL_CLIENT_A_KEY", "SSL_CLIENT_A_SIG", "SSL_SERVER_M_VERSION", "SSL_SERVER_M_SERIAL", "SSL_SERVER_V_START", "SSL_SERVER_V_END", "SSL_SERVER_S_DN", "SSL_SERVER_I_DN", "SSL_SERVER_A_KEY", "SSL_SERVER_A_SIG", "SSL_SESSION_ID", "SSL_SESSION_RESUMED", #ifdef HAVE_SRP "SSL_SRP_USER", "SSL_SRP_USERINFO", #endif NULL }; Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Ivan_83 Опубликовано 26 марта, 2020 · Жалоба Мигрируйте на nginx + php-fpm/ngunit, никаких перспектив у апача нет, ровно как и у тех кто только им пользуется. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
Crazy_Max Опубликовано 26 марта, 2020 · Жалоба 10 minutes ago, Ivan_83 said: Мигрируйте на nginx + php-fpm/ngunit, никаких перспектив у апача нет, ровно как и у тех кто только им пользуется. Опаздал с комментарием, хотел ровно тоже самое написать. Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...
vop Опубликовано 26 марта, 2020 · Жалоба 11 hours ago, Ivan_83 said: Мигрируйте на nginx + php-fpm/ngunit, никаких перспектив у апача нет, ровно как и у тех кто только им пользуется. Проверил... Ага, я на НАГ'е. А показалось, что на мастер-х'е. :) А так да, переходите... Вставить ник Цитата Ответить с цитированием Поделиться сообщением Ссылка на сообщение Поделиться на других сайтах More sharing options...