Я строю расширение и устанавливаю его вручную в хром. Все отлично работает, кроме создания чего-то нового. Я не мог создать пароль или пользователя. Это говорит мне, что "несоответствие токена CSRF". Когда я просматриваю заголовки запроса, вижу что-то вроде:
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: en-US,en;q=0.9,tr;q=0.8
Connection: keep-alive
Content-Length: 743
Content-Type: application/json
Cookie: csrfToken=************; CAKEPHP=********
DNT: 1
Host: local.passbolt.com
Origin: https://local.passbolt.com
Referer: https://local.passbolt.com/app/passwords
User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.119 Safari/537.36
X-CSRF-Token: null
X-Requested-With: XMLHttpRequest
Я использую Passbolt за обратным прокси-сервером с несколькими виртуальными хостами и пытаюсь решить эту проблему около 2 рабочих дней. Очень нужна ваша помощь.
- Версия Passbolt: Docker Container, размещенный на Ducker Hub
- Браузер: Chrome 72.0.3626.119
- Веб-сервер: Nginx 1.14.0 / Ubuntu
Что вы сделали
Следуйте этим инструкциям для использования passbolt https://help.passbolt.com/hosting/install/ce/docker.html
И следовал этим инструкциям для построения passbolt-extension https://github.com/passbolt/passbolt_browser_extension
Вот мой конф Nginx:
upstream passbolt{
server 127.0.0.1:4343;
}
server {
listen 443 ssl;
listen [::]:443 ssl;
server_name local.passbolt;
add_header X-XSS-Protection "1; mode=block";
proxy_cookie_path / "/; HTTPOnly; Secure";
ssl on;
ssl_certificate /etc/nginx/certs/ssl/cert.crt;
ssl_certificate_key /etc/nginx/certs/ssl/cert.key;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
ssl_ciphers "EECDH+ECDSA+AESGCM EECDH+aRSA+AESGCM EECDH+ECDSA+SHA384 EECDH+ECDSA+SHA256 EECDH+aRSA+SHA384 EECDH+aRSA+SHA256 EECDH+aRSA+RC4 EECDH EDH+aRSA HIGH !RC4 !aNULL !eNULL !LOW !3DES !MD5 !EXP !PSK !SRP !DSS";
ssl_dhparam /etc/nginx/certs/dhparams.pem;
location / {
proxy_pass https://passbolt/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forward-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forward-Proto http;
proxy_set_header X-Nginx-Proxy true;
proxy_redirect off;
}
}
Что случилось
После создания пользователя и входа в систему passbolt попытался создать безопасный пароль, и он выдает ошибку несоответствия токена CSRF с кодом 403. И не может видеть подробный журнал в «журналах докера» или журналах обратного прокси-сервера nginx.