Рейтинг:0

Могу ли я использовать разные клиентские сертификаты для разных мест с помощью nginx?

флаг cn

У меня есть два разных местоположения на моем сервере:

  • сервер/местоположениеA
  • сервер/местоположениеB

Я хочу ограничить доступ к этим местам, используя два клиентских сертификата certA и certB.

locationA должен быть доступен только с помощью certA, а locationB — только с помощью certB.

до сих пор я делал это так, используя разные порты:

сервер {

  слушать 11111 ssl;
  имя_сервера СерверA;

  ssl_certificate server.crt;
  ssl_certificate_key сервер.ключ;

  ssl_client_certificate certA.crt;
  ssl_verify_client необязательно;


  местоположение / А {
    если ($ ssl_client_verify! = УСПЕХ) {
      вернуть 403;
    }
    псевдоним /www/data/files/A.html;
  }
}

сервер {

  слушать 22222 ssl;
  имя_сервера СерверB;

  ssl_certificate server.crt;
  ssl_certificate_key сервер.ключ;

  ssl_client_certificate certB.crt;
  ssl_verify_client необязательно;


  местоположение / Б {
    если ($ ssl_client_verify! = УСПЕХ) {
      вернуть 403;
    }
    псевдоним /www/data/files/B.html;
  }
}

теперь мой вопрос будет заключаться в том, возможно ли иметь оба местоположения в одном и том же порту, например. (сервер/A и сервер/B вместо сервера:11111/A и сервера:22222/B)? И как мне нужно структурировать мою конфигурацию nginx, чтобы добиться этого?

Рейтинг:0
флаг in

Нет. Сертификат применяется к блоку сервера, так как он должен соответствовать имени сервера.

Невозможно использовать другой сертификат только для местоположения.

Однако различные серверные блоки — это единственное, что вам нужно, и это у вас уже есть. Просто добавьте два блока серверов с портом 443, используйте разные имя сервераs и соответствующий им сертификат.

just_some_dude avatar
флаг cn
Соответствуют ли server_names разным доменным именам или это конкретные имена серверов nginx/internal?
флаг in
Это DNS-имя, на которое должен отвечать блок сервера.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.