1. 申请腾讯云收费ssl证书
1.1 登陆腾讯云在我的证书列表页面点击申请收费证书
2.2 提交材料,必填证书绑定域名以及申请邮箱,绑定域名填写springboot我的项目部署的服务器域名
2.3 抉择验证形式,默认即可
2.4 验证域名,个别2、3分钟就验证结束了
2.5 验证结束后在证书列表页面下载证书文件,抉择tomcat目录下的jks文件即可
证书列表
证书压缩包文件
2. springboot配置ssl证书
1.1 将jks文件导入springboot我的项目resoures目录下
2.2 在application.yml
文件中配置如下代码
server: port: 443 ssl: # ssl相干配置 enabled: true key-store: classpath:mall.wayn.ltd.jks key-store-password: idFXdK.Rnm3CgZp key-store-type: JKShttp-port: 8080 # http重定向https配置
2.3 增加HttpsConfiguration
文件,将 HTTP 申请重定向到HTTPS
import org.apache.catalina.Context;import org.apache.catalina.connector.Connector;import org.apache.tomcat.util.descriptor.web.SecurityCollection;import org.apache.tomcat.util.descriptor.web.SecurityConstraint;import org.springframework.beans.factory.annotation.Value;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.context.annotation.Configuration;@Configurationpublic class HttpsConfiguration { @Value("${http-port}") private int port; @Value("${server.port}") private int sslPort; @Bean public ServletWebServerFactory servletContainer() { TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() { @Override protected void postProcessContext(Context context) { SecurityConstraint securityConstraint = new SecurityConstraint(); securityConstraint.setUserConstraint("CONFIDENTIAL"); SecurityCollection collection = new SecurityCollection(); collection.addPattern("/*"); securityConstraint.addCollection(collection); context.addConstraint(securityConstraint); } }; tomcat.addAdditionalTomcatConnectors(redirectConnector()); return tomcat; } private Connector redirectConnector() { Connector connector = new Connector(TomcatServletWebServerFactory.DEFAULT_PROTOCOL); connector.setScheme("http"); connector.setPort(port); connector.setSecure(false); connector.setRedirectPort(sslPort); return connector; }}
- 拜访浏览器http://localhost8080,会主动重定向到https://localhost