上来就贴代码:
server { listen 443; server_name **.****.net; #填写绑定证书的域名 ssl on; ssl_certificate /opt/nginx-1.10.2/conf/nginx_ssl_**.****.net/1_**.****.net_bundle.crt; ssl_certificate_key /opt/nginx-1.10.2/conf/nginx_ssl_**.****.net/2_**.****.net.key; ssl_session_timeout 5m; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置 ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置 ssl_prefer_server_ciphers on; location ^~ /base/ { proxy_pass http://localhost:8080; proxy_redirect default; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } location / { root /www/index; index index.html; } }
关于ssl_prefer_server_ciphers,在双端协商加密算法时,主要是向客户端强调使用服务端的加密算法,但最终使用谁的算法是由客户端说了算
X-Real-IP和X-Forwarded-For可以将客户端ip带给tomcat
如果要全站http,那就在server代码块里(注意不是server的location里)加入 rewrite ^(.*) https://$host$1 permanent; ,可以保证参数都带到https