1 找见JDK安装路径C:Program FilesJavajdk1.8.0_91in
2在这个路径下面打开dos窗口
3输入一下命令
keytool -genkey -alias tomcat -keyalg RSA -keystore F:workspacegitchexianverifysrcmain esourcesSSL.keystore 改成自己的安装路径
4 之后你按照dos提示一步一步往下走 密匙库口令随便输入 但是最好记住
5 之后就会生成SSL.keystore自己命名好的文件 放到你的项目中 我是springboot项目 直接放到resource中就行
6 配置application.properties
//https访问的端口
server.port=8005
//证书名称
server.ssl.key-store=classpath:SSL.keystore
//密匙库口令
server.ssl.key-store-password=k4098412
//密匙库类型 JKS千万别写错
server.ssl.keyStoreType=JKS
//别名
server.ssl.keyAlias=tomcat
这个别名说下 有些人可能觉得这个别名从哪来
在证书的目录下打开dos窗口 输出命令
keytool -list -keystore SSL.keystore(你的证书名称)
途中所指的就是别名
7 之后再配置启动类
SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
public static void main(String[] args) {
SpringApplication.run(SpringBootStartApplication.class, args);
}
public void run(String[] args) throws Exception {
System.err.println("Report time for you: " +sdf.format(new Date()) + " ---> darling~ yours springboot project has been successfully started!nice day,right?");
}
/**
* http重定向到https
* @return
*/
@Bean
public TomcatServletWebServerFactory servletContainer() {
TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
@Override
protected void postProcessContext(Context context) {
SecurityConstraint constraint = new SecurityConstraint();
constraint.setUserConstraint("CONFIDENTIAL");
SecurityCollection collection = new SecurityCollection();
collection.addPattern("/*");
constraint.addCollection(collection);
context.addConstraint(constraint);
}
};
tomcat.addAdditionalTomcatConnectors(httpConnector());
return tomcat;
}
@Bean
public Connector httpConnector() {
Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
connector.setScheme("http");
//Connector监听的http的端口号
connector.setPort(8080);
connector.setSecure(false);
//监听到http的端口号后转向到的https的端口号
connector.setRedirectPort(8005);
return connector;
}
在启动类中加上最后这两个方法就可以了
有些人可能会出现 以下报错:
DerInputStream.getLength(): lengthTag=109, too big.
解决办法
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
过滤后缀为pem、pfx的证书文件
<nonFilteredFileExtensions>
<nonFilteredFileExtension>pem</nonFilteredFileExtension>
<nonFilteredFileExtension>pfx</nonFilteredFileExtension>
<nonFilteredFileExtension>p12</nonFilteredFileExtension>
</nonFilteredFileExtensions>
</configuration>
</plugin>
在pom文件中加入这个依赖就可以解决了
就这几个部署 JDK自带的SSL证书就配置完了