使用nginx和ssl反向代理后无法加载脚本

使用nginx和ssl反向代理后无法加载脚本

问题描述:

在我的工作中,我在服务器上安装了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; 
    } 
} 

对不起长张贴,提前感谢您的任何提示,可能有所帮助。

您需要在您的API主机上打开CORS。

在我的情况下,并非所有内容都通过https提供。确保所有文件都使用https而不是http。

https_mixed_content_error