SCM-Manager para SVN + Nginx + HTTPS

Me gustaría configurar SCM-Manager a través de HTTPS. He hecho una installation en Debian. Yo uso SCM-Manager con una dirección IP local y sobre HTTP. Nginx es el proxy y transforma la request en HTTPS.

proxy_pass http://127.0.0.1:8080; proxy_networkingirect http://127.0.0.1:8080 https://repo.mydomain.org; proxy_set_header X-Forwarded-Proto https; include /etc/nginx/proxy.conf; 

Aquí está la configuration de SCM:

 <base-url>https://repo.mydomain.org/</base-url> server-config.xml => <Set name="contextPath">/scm</Set> => <Set name="forwarded">true</Set> => <SystemProperty name="jetty.host" default="127.0.0.1" /> 

Todo funciona bien, pero tengo un error cuando quiero ver un file diff o. La URL para get imágenes estáticas en HTTP en lugar de HTTPS. Aquí está la salida de los diferentes browseres (Firefox, Chrome, IE):

De Chrome:

Contenido mixto: la página en ' https://repo.mydomain.org/#contentPanel;BQPsols4p3;null;trunk/init.php;content ' se cargó a través de HTTPS, pero solicitó un punto final inseguro XMLHttpRequest ' http: // repo. mydomain.org/api/rest/repositories/BQPsols4p3/content/?path=trunk/init.php&_dc=1470349149784 '. Esta request ha sido bloqueada; el contenido debe ser servido a través de HTTPS.

¿Por qué el sistema intenta get los datos a través de HTTP en lugar de HTTPS?

Otro pequeño error es que el software intenta get estos scripts de lenguaje, pero no existen en el server.

 /resources/moment/lang/fr.js /resources/extjs/i18n/ext-lang-fr.js /resources/js/i18n/fr.js /resources/moment/lang/fr.js /resources/extjs/i18n/ext-lang-fr.js /resources/js/i18n/fr.js 

¿Cómo eliminar tesis 404?

EDITAR

Aquí está la configuration completa de Nginx:

 user www-data; #worker_processes auto; worker_processes 4; worker_rlimit_nofile 20480; pid /run/nginx.pid; events { worker_connections 8192; use epoll; # multi_accept on; } http { ## # Basic Settings ## sendfile off; tcp_nopush off; tcp_nodelay on; keepalive_timeout 65; types_hash_max_size 2048; server_tokens off; client_body_timeout 60s; client_header_timeout 60s; # server_name_in_networkingirect off; include /etc/nginx/mime.types; default_type application/octet-stream; ## # SSL Settings ## ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE ssl_prefer_server_ciphers on; ## # Logging Settings ## access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; ## # Gzip Settings ## gzip on; gzip_disable "msie6"; gzip_comp_level 1; gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript; ssl off; upstream scm { server 127.0.0.1:8080; } ## # nginx-naxsi config ## # Uncomment it if you installed nginx-naxsi ## #include /etc/nginx/naxsi_core.rules; ## # Virtual Host Configs ## server { listen 80 default; server_name _; #access_log /var/log/nginx/host.access.log main; location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|zip|tgz|gz|rar|bz2|doc|xls|exe|pdf|ppt|txt|tar|mid|midi|wav|bmp|rtf|js|mov|swf|dcr)$ { root /home/www/public_html; access_log off; expires 30d; } location / { root /home/www/public_html; } location ~ /\.ht { deny all; } location /nginx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; } } include /etc/nginx/sites-enabled/*; } 

Sitio habilitado (última testing de configuration):

 server { listen 80; server_name repv.mydomain.org; location / { return 301 https://$host$request_uri; } } server { listen 443 ssl; server_name repv.mydomain.org; #access_log /var/log/nginx/host.access.log main; error_log /var/log/nginx/error.log; ssl on; ssl_certificate /home/ssl/letsencrypt/live/repv.mydomain.org/fullchain.pem; ssl_certificate_key /home/ssl/letsencrypt/live/repv.mydomain.org/privkey.pem; ssl_stapling on; ssl_stapling_verify on; ssl_trusted_certificate /home/ssl/letsencrypt/live/repv.mydomain.org/fullchain.pem; ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH"; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on; ssl_session_cache shanetworking:SSL:10m; ssl_session_timeout 5m; ssl_dhparam /home/ssl/private/dhparams.pem; location / { rewrite ^([^.]*[^/])$ http://$host$1/ permanent; proxy_pass http://scm; include /etc/nginx/proxy.conf; proxy_networkingirect http://scm https://repv.mydomain.org; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Ctx ""; } } 

Y el proxy.conf:

 proxy_networkingirect off; 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_hide_header X-Powenetworking-By; client_max_body_size 20m; client_body_buffer_size 1024k; send_timeout 90; proxy_connect_timeout 90; proxy_send_timeout 90; proxy_read_timeout 90; proxy_buffer_size 16k; proxy_buffers 8 32k; proxy_busy_buffers_size 64k; proxy_temp_file_write_size 64k; proxy_buffering on; proxy_http_version 1.1; 

EDIT 2

He intentado cambiar a HTTP. Pero tengo el mismo problema. Cuando quiero ver un file o una diferencia, aparece el post "No se pudo encontrar el recurso". La razón es que el recurso ajax llamado devuelve un error 404 sin contenido.

Ejemplo: " http://repo.mydomain.org/api/rest/repositories/BQPsols4p3/content/?path=trunk/init.php&revision=30&_dc=1472061397498 " devuelve un 404 …; y lo mismo para la vista en bruto " http://repo.mydomain.org/api/rest/repositories/BQPsols4p3/content/?path=trunk/init.php&revision=30 " devuelve un 404.

¿Me puedes ayudar a encontrar el problema?

Gracias por tu ayuda,

Stéphane

Encontré la manera de tener toda la stack funcionando.

Primero, eliminé la línea de Nginx:

 rewrite ^([^.]*[^/])$ http://$host$1/ permanent; 

A continuación, modifiqué los derechos en mis files SVN '/ home / local / svn' con 'chown -Rc scm: scm / home / local / svn'.

Y finalmente, cuando migro desde un antiguo server SVN 1.6, he activado la opción Pre 1.6 en SCM Manager (no olvides reiniciar tu server).

¡Todo funciona bien por ahora!

Espero que esto pueda ser útil para alguien 🙂