java -jar启动的springboot项目如何使用https协议访问

       这里以微信小程序为例。我们都知道微信小程序在做请求的时候是只支持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文件进行加载。

猜你喜欢

转载自blog.csdn.net/weixin_42822484/article/details/106683207
今日推荐