2017-08-08 209 views
0

在我的工作中,我在服務器上安裝了nginx,以便我們可以在我們的應用程序中將它用作ssl的反向代理。我跟一些網上的文章,創造了這一個自簽名證書:使用nginx和ssl反向代理後無法加載腳本

openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/nginx/cert.key -out /etc/nginx/cert.crt 

所以下進行配置後,在/ etc/nginx的/網站可用並重新啓動nginx的,我想出了一個問題。

在我的服務器下運行的3個應用程序中有2個似乎工作正常,唯一的問題是證書不是來自CA,因此您需要添加一個例外,但我想現在沒問題。這兩個是node.js應用程序和jenkins。

現在對於第三個應用程序,問題是它不會加載腳本。更確切地說,他們是在Chrome中運行,歌劇,火狐但只有當我在小盾點擊網址,以便讓運行不安全的腳本的右邊,如下圖所示:

enter image description here

現在,我想要什麼要實現的目的是從所有瀏覽器加載腳本,而無需點擊以允許腳本運行。與默認情況下運行腳本的node.js應用程序一樣。這個應用程序是與Maven,詹金斯,碼頭和主幹的組合。我不是開發的一部分,所以我不知道應用程序的很多事情。所以我想知道是否必須更改maven-docker-backbone中的任何配置,以便腳本可以默認運行,就像使用http時一樣。

這裏是反向代理的配置文件我的應用程序:

server { 
    listen 80; 
    return 301 https://$host$request_uri; 
} 

server { 

    listen 443; 
    server_name mysub.domain.com; 

    ssl_certificate   /etc/nginx/ssl/nginx.crt; 
    ssl_certificate_key  /etc/nginx/ssl/nginx.key; 

    ssl on; 
    ssl_session_cache builtin:1000 shared:SSL:10m; 
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    ssl_ciphers HIGH:!aNULL:!eNULL:!EXPORT:!CAMELLIA:!DES:!MD5:!PSK:!RC4; 
    ssl_prefer_server_ciphers on; 

    access_log   /var/log/nginx/myapp.access.log; 

    location/{ 

     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_set_header  X-Forwarded-Proto $scheme; 

     # Fix the 「It appears that your reverse proxy set up is broken" error. 
     proxy_pass   http://localhost:myport; 
     proxy_read_timeout 90; 

     proxy_redirect  http://localhost:myport https://mysub.domain.com; 
    } 
    } 

最後,這裏是沒有SSL通常運行腳本conf文件:

server { 
    listen 80; 

    server_name mysub.domain.com; 

    location/{ 
     proxy_pass http://127.0.0.1:myport; 
     proxy_http_version 1.1; 
     proxy_set_header Upgrade $http_upgrade; 
     proxy_set_header Connection 'upgrade'; 
     proxy_set_header Host $host; 
     proxy_cache_bypass $http_upgrade; 
    } 
} 

對不起長張貼,提前感謝您的任何提示,可能有所幫助。

回答

0

您需要在您的API主機上打開CORS。

1

在我的情況下,並非所有內容都通過https提供。確保所有文件都使用https而不是http。

https_mixed_content_error