java -jar启动的springboot项目如何使用http
2020-06-11 本文已影响0人
皆非的万事屋
这里以微信小程序为例。我们都知道微信小程序在做请求的时候是只支持https协议的,所以你后端项目不能直接再使用http+公网ip访问了,而是https+域名进行访问。
首先是部署在服务端的tomcat,可以安装SSL证书,你再把项目打包成war,进行部署,就可以通过https进行访问了。
但是springboot写的项目多以jar方式打包,是内嵌的tomcat,那么该如何通过https访问呢?
Nginx反向代理
Nginx是可以安装SSL证书的,我们可以使外请求为https协议,反向带理的请求可以为http协议去访问springboot项目,这样从外部整体上看是用了https协议访问了项目。
server {
listen 8080;
listen [::]:8080 ssl ipv6only=on;
server_name www.xxxxx.com;
ssl on;
ssl_certificate /etc/nginx/cert/1_www.xxxxx.com_bundle.crt; #crt路径
ssl_certificate_key /etc/nginx/cert/2_www.xxxxx.com.key; #key路径
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; #使用此加密套件。
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #修改protocols。
ssl_prefer_server_ciphers on;
#禁止在header中出现服务器版本,防止黑客利用版本漏洞攻击
#server_tokens off;
#如果是全站 HTTPS 并且不考虑 HTTP 的话,
#可以加入 HSTS 告诉你的浏览器本网站全站加密,并且强制用 HTTPS 访问
#fastcgi_param HTTPS on;
#fastcgi_param HTTP_SCHEME https;
location / {
proxy_pass http://www.xxxxx.com/;
}
}
这个就是我单独配置的,端口看你的需求设置,这个在微信小程序上是通过的(检验合法域名)。
注意:Ubuntu系统下的nginx配置在 /etc/nginx/sites-enabled里以多个conf文件进行加载。