Есть видео регистратор, с него можно получить скриншот картинки таким методом.
http://admin:admin@10.1.1.10/cgi-bin/snapshot.cgi?...
Хочу настроить nginx proxy который будет проксировать эти запросы и добавлять в них авторизацию, что бы пользователь не вводил логин и пароль. То есть, пользователь будет переходить на
https://ipcam.domain.com/poster, а прокси будет проксировать на
location /poster {
proxy_set_header Authorization "Basic YWRtaW46YWRtaW4="; ## эта конструкция не работает
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://10.1.1.10/cgi-bin/snapshot.cgi?channel=1;
}
С помощью proxyman смог выдернуть запрос на
http://admin:admin@10.1.1.10/cgi-bin/snapshot.cgi?..., в нем видно первый ответ сервера
HTTP/1.1 401 Unauthorized
WWW-Authenticate: Digest realm="Login to 3D04A97PBM00047",qop="auth",nonce="1494436225",opaque="a93077c1c5ff5f5f6b632f460abda31386d814b6"
Connection: close
CONTENT-LENGTH: 0
на который клиент отправляет заголовок Authorization, но повторить это в nginx proxy_pass у меня не получается.
GET /cgi-bin/snapshot.cgi?channel=1 HTTP/1.1
Host: 10.1.1.10
Connection: keep-alive
Authorization: Digest username="admin", realm="Login to 3D04A97PBM00047", nonce="1488633015", uri="/cgi-bin/snapshot.cgi?channel=1", response="93fd92abcc5a41b48cc2a2d443686ed2", opaque="a93077c1c5ff5f5f6b632f460abda31386d814b6", qop=auth, nc=00000001, cnonce="7696474d69eef2e4"
DNT: 1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7
Accept-Encoding: gzip, deflate
Accept-Language: ru-UA,ru;q=0.9
В интернете куча примеров как из nginx сделать сервер для авторизации, но нет примеров как сделать nginx клиентом который будет авторизоваться.
Может кто-то сталкивался с похожей задачей?