Il s'agit d'un problème avec Nginx qui n'affecte que firefox. J'ai cette configuration : http://pastebin.com/q6Yeqxv9
amont connect {
serveur 127.0.0.1:8080;
}
serveur {
server_name admin.example.com www.admin.example.com;
écouter 80;
retour 301 https://admin.example.com$request_uri;
}
serveur {
écouter 80;
server_name ankieta.example.com www.ankieta.example.com;
ajouter_en-tête Access-Control-Allow-Origin $http_origin;
ajouter_en-tête 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, PATCH, DELETE';
ajouter_en-tête 'Access-Control-Allow-Credentials' 'true';
ajouter_en-tête 'Access-Control-Allow-Headers' 'Access-Control-Request-Method,Access-Control-Request-Headers,Cache,Pragma,Authorization,Accept,Accept-Encoding,Accept-Language,Host,Referer,Content-Length,Origin,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
retour 301 https://ankieta.example.com$request_uri;
}
serveur {
server_name admin.example.com;
écouter 443 ssl;
ssl_certificate /srv/ssl/14182263.pem;
clé de certificat ssl /srv/ssl/admin_i_ankieta.example.com.key;
protocoles SSLv3 TLSv1;
chiffres SSL ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM;
emplacement / {
proxy_pass http://connect;
}
}
serveur {
server_name ankieta.example.com;
écouter 443 ssl;
ssl_certificate /srv/ssl/14182263.pem;
clé de certificat ssl /srv/ssl/admin_i_ankieta.example.com.key;
protocoles SSLv3 TLSv1;
chiffres SSL ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM;
racine /srv/limesurvey;
index index.php;
ajouter_en-tête 'Access-Control-Allow-Origin' $http_origin;
ajouter_en-tête 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS, PUT, PATCH, DELETE';
ajouter_en-tête 'Access-Control-Allow-Credentials' 'true';
ajouter_en-tête 'Access-Control-Allow-Headers' 'Access-Control-Request-Method,Access-Control-Request-Headers,Cache,Pragma,Authorization,Accept,Accept-Encoding,Accept-Language,Host,Referer,Content-Length,Origin,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
client_max_body_size 4M;
emplacement / {
try_files $uri $uri/ /index.php?q=$uri&$args;
}
emplacement ~ /*.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
#NOTE: Vous devriez avoir "cgi.fix_pathinfo = 0;" dans php.ini
inclure fastcgi_params;
fastcgi_param SCRIPT_FILENAME /srv/limesurvey$fastcgi_script_name;
# fastcgi_param HTTPS $https;
fastcgi_intercept_errors on;
fastcgi_pass 127.0.0.1:9000;
}
emplacement ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expire max;
log_not_found off;
}
}
il s'agit essentiellement d'une application AngularJS et d'une application PHP (LimeSurvey), servies sous deux domaines différents par le même serveur web (Nginx). AngularJS est en fait servi par ConnectJS, qui est proxyé par Nginx (ConnectJS n'écoute que sur localhost).
Dans la console Firefox j'obtiens ceci :
Requête interdomaine bloquée : la même politique d'origine empêche la lecture de la ressource distante à https://ankieta.example.com/admin/remotecontrol. Ceci peut être corrigé en déplaçant la ressource vers le même domaine ou en activant CORS.
ce qui est bien sûr ennuyeux. Les autres navigateurs fonctionnent correctement (Chrome, IE).
Des suggestions à ce sujet ?