Задать вопрос

Как передать клиентский сертификат в PHP?

Пытаюсь сделать авторизацию по самоподписанным сертификатам в своем API.
Дошел до проверки сертификата на сервере и немного завис. Хотел сделать проверку сертификатов на уровне PHP через OpenSSL, но не могу передать через nginx нужные fastcgi_param. (в $_SERVER нет сертификатов, которые присылает клиент)
Нашел кучу статей как сделать проверку на уровне nginx, но ни одной, как просто передать сертификаты в PHP.
На стороне клиента передаю через curl подписанные сервером клиентские сертификаты так:
$opts[CURLOPT_CAPATH] = '';
$opts[CURLOPT_CAINFO] = realpath(SRC_DIR .'/../etc/ssl/root_CA.crt');
$opts[CURLOPT_SSLCERT] = realpath(SRC_DIR .'/../etc/ssl/client.crt');
$opts[CURLOPT_SSLCERTPASSWD] = '';
$opts[CURLOPT_SSLKEY] = realpath(SRC_DIR .'/../etc/ssl/client.key');

плюс добавляю
CURLOPT_SSL_VERIFYHOST => 0,
CURLOPT_SSL_VERIFYPEER => 0,

Подскажите, можно ли на nginx обойтись без проверки сертификата на уровне веб-сервера и передать их в FastCGI - в манах не нашел.
  • Вопрос задан
  • 3392 просмотра
Подписаться 4 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
merryjane
@merryjane
Системный администратор
В nginx попробуйте установить:
fastcgi_param HTTPS on;

Также посмотрите на переменные для модуля ngx_http_ssl_module:
nginx.org/ru/docs/http/ngx_http_ssl_module.html
Можно попробовать из них взять нужную информацию.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽