整体结构
用户--https-->Nginx--http-->Tomcat
页面中包含了iframe,iframe的src也是Https的,但是当frame里面的内容表单提交后tomcat服务器处理成功想要重定向却无法正常重定向,Chrome报错如下
Mixed Content: The page at 'https://...../#' was loaded over HTTPS, but requested an insecure form action 'http://.../**/**'. This request has been blocked; the content must be served over HTTPS.
我实在不知道怎么正确组织语言描述这个问题,不知道描述的大家能否理解,下面贴上Nginx的配置信息,希望大家抽时间帮忙看看,先谢过了
proxy.conf
proxy_redirect off;proxy_temp_file_write_size 64k;
defalut
server {
listen 80 default_server;
server_name localhost;
return 301 https://$server_name:6663$request_uri;
}
server {
listen 6663;
server_name localhost;
ssl on;
ssl_certificate /home/dream/Https/ssl/server/server.crt;
ssl_certificate_key /home/dream/Https/ssl/server/server.pem;
ssl_client_certificate /home/dream/Https/ssl/server/root.crt;
ssl_session_timeout 5m;
ssl_verify_client on; #开户客户端证书验证
ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
ssl_ciphers ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP;
ssl_prefer_server_ciphers on;
location / {
proxy_pass http://127.0.0.1:8080/;
}
}
系统环境:
nginx version: nginx/1.4.6 (Ubuntu) built by gcc 4.8.2 (Ubuntu 4.8.2-19ubuntu1)
Ubuntu 14.04
Chrome版本 42.0.2311.135 (64-bit)
这是因为tomcat重定向的时候给你变成http了。
加个 proxy_redirect试试
proxy_passhttp://127.0.0.1:8080/;
proxy_redirect~^http://([^:]+)(:\d+)?(.*)$ https://$1$3;
<!--定义视图文件解析-->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="${web.view.prefix}"/>
<property name="suffix" value="${web.view.suffix}"/>
<property name="redirectHttp10Compatible" value="false" />
</bean>
解决了?
这是因为tomcat重定向的时候给你变成http了。
加个 proxy_redirect试试
proxy_passhttp://127.0.0.1:8080/;
proxy_redirect~^http://([^:]+)(:\d+)?(.*)$ https://$1$3;
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。