sprinb boot/cloud 使用HTTPS (ssl)

一 概念

SSL(Secure Sockets Layer,安全套接层)

二 证书

1 购买证书,费用几千元一年不等
显示效果:
这里写图片描述
2 自己生成
显示效果:
这里写图片描述

三 自己创建证书

在windows系统上,在命令行中输入:

keytool -genkey -alias tomcat  -storetype PKCS12 -keyalg RSA -keysize 2048  -keystore keystore.p12 -validity 3650
然后按提示依次输入:
您的名字与姓氏是什么?
  [lanliang]: lu 您的组织单位名称是什么? [lanliang]: lanliang 您的组织名称是什么? [lanliang]: lanliang 您所在的城市或区域名称是什么? [hz]: hz 您所在的省/市/自治区名称是什么? [hz]: zhejiang 该单位的双字母国家/地区代码是什么? [china]: cn CN=lu, OU=lanliang, O=lanliang, L=hz, ST=zhejiang, C=cn是否正确? []: yes 您的名字与姓氏是什么? [lu]: 您的组织单位名称是什么? [lanliang]: 您的组织名称是什么? [lanliang]: 您所在的城市或区域名称是什么? [hz]: 您所在的省/市/自治区名称是什么? [zhejiang]: 该单位的双字母国家/地区代码是什么? [cn]: CN=lu, OU=lanliang, O=lanliang, L=hz, ST=zhejiang, C=cn是否正确? []: 是

在C:\Users\Administrator目录下已经生成了keystore.p12文件

四 给spring boot/cloud项目添加配置

1 配置文件中添加

server:
  ssl:
    key-store: classpath:keystore.p12
    key-store-password: 123456
    keyStoreType: PKCS12
    keyAlias: tomcat

2 main方法添加:

@SpringBootApplication
@EnableEurekaClient
@ComponentScan("com.**.**")
@MapperScan("com.**.**.admin.mapper")
@EnableFeignClients
public class AdminBootstrap {
  public static void main(String[] args) {
    new SpringApplicationBuilder(AdminBootstrap.class).web(true).run(args);
  }

  @Bean
  public EmbeddedServletContainerFactory servletContainer() {
    TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();
    tomcat.addAdditionalTomcatConnectors(createStandardConnector()); // 添加http
    return tomcat;
  }

  // 配置http
  private Connector createStandardConnector() {
    Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
    connector.setPort(8812);
    return connector;
  }

}

启动服务:

Tomcat initialized with port(s): 8763 (https) 8812 (http)

五 验证效果

https://192.168.158.21:8763/button/list?menuId=1
接口返回正常

参考:
https://www.cnblogs.com/lianggp/p/8136540.html
http://412887952-qq-com.iteye.com/blog/2400846
https://blog.csdn.net/u012702547/article/details/53790722

相关文章
相关标签/搜索