springBoot支持THHS端口访问

springBoot开启htpps端口

说明:两种方式,第二种是老的方式

1. jks证书

1.1 生成SSL证书

  • 切换到JAVA_HOME/bin目录下面
  • 执行命令
keytool -genkey -alias test -keypass 555555 -keyalg RSA -sigalg sha256withrsa -keysize 1024 -validity 3650 -keystore d:/test.jks -storepass 555555
  • 参数说明
keytool -genkey -alias test(别名) 
-keypass 123123(私钥密码) 
-keyalg RSA(算法) 
-sigalg sha256withrsa(算法小类) 
-keysize 1024(密钥长度) 
-validity 3650(有效期)
-keystore d:/test.jks(生成路径) 
-storepass 123123(主密码)
  • 其他步骤
输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
  [Unknown]:  xxx
您的组织单位名称是什么?
  [Unknown]:  xxx
您的组织名称是什么?
  [Unknown]:  xxx
您所在的城市或区域名称是什么?
  [Unknown]:  beijing
您所在的省//自治区名称是什么?
  [Unknown]:  beijing
该单位的双字母国家/地区代码是什么?
  [Unknown]:  china
CN=xxx, OU=xxx, O=xxx, L=beijing, ST=beijing, C=china是否正确?
  []:  y

1.2 将生成的test.jks拷贝到项目resources目录下

1.3 修改项目配置

# 添加SSL后,默认端口为8888Https
server.port=8888
# SSL配置
server.ssl.key-store=classpath:twtKey.jks
server.ssl.key-store-type=jks
server.ssl.key-store-password=twtKey

1.3 启动文件添加以下代码

@Bean
	public ServletWebServerFactory servletContainer() {
		TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
		tomcat.addAdditionalTomcatConnectors(createHTTPConnector());
		return tomcat;
	}
	
	private Connector createHTTPConnector() {
		Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
		connector.setScheme("http");
		connector.setSecure(false);
		connector.setPort(8080);
        connector.setRedirectPort(8888);
		return connector;
	}

2. p12 证书

2.1 生成SSL证书

MAC系统:keytool -genkey -alias your.alias(别名随便起) -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 validity 3650

Windows系统,请在JDK目录下找到keytool.exe

keytool -genkey -alias your.alias(别名随便起) -keypass yourpass1 -keyalg RSA -keysize 2048 -validity 3650 -keystore D:/keys/keystore.keystore -storepass yourpass2

输入密钥库口令:
再次输入新口令:
您的名字与姓氏是什么?
  [Unknown]:  xxx
您的组织单位名称是什么?
  [Unknown]:  xxx
您的组织名称是什么?
  [Unknown]:  xxx
您所在的城市或区域名称是什么?
  [Unknown]:  beijing
您所在的省//自治区名称是什么?
  [Unknown]:  beijing
该单位的双字母国家/地区代码是什么?
  [Unknown]:  china
CN=xxx, OU=xxx, O=xxx, L=beijing, ST=beijing, C=china是否正确?
  []:  y

请正确设置上面的参数

2.2 将生成的keystore.p12或者keystore.keystore拷贝到项目resources目录下

2.3. 配置入口文件

package com.hollysys.tn;

import org.apache.catalina.connector.Connector;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.web.embedded.tomcat.TomcatServletWebServerFactory;
import org.springframework.boot.web.servlet.server.ServletWebServerFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.scheduling.annotation.EnableScheduling;

@SpringBootApplication
@EnableScheduling
public class Application {

	public static void main(String[] args) {
		SpringApplication.run( Application.class, args );
	}

	/**
	 * 开启多端口号,并支持http和https
	 */
	@Bean
	public ServletWebServerFactory servletContainer() {
		TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory();
		tomcat.addAdditionalTomcatConnectors(createHTTPConnector());
		return tomcat;
	}
	
	private Connector createHTTPConnector() {
		Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
		connector.setScheme("http");
		connector.setSecure(false);
		connector.setPort(85);
		connector.setRedirectPort(8080);
		return connector;
	}
}

以上代码实现的端口分别是 https:8080 , http:85

2.4. sppliction.yml 配置

server:
    port: 8080
    ssl:
      key-store: classpath:keystore.p12
      key-store-password: hollysys
      keyAlias: tomcat
      keyStoreType: PKCS12

运行起来,打开浏览器:https://localhost:8080,会出现证书安全提示,因为是自已生成未认证的证书,所以不用理会

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值