最全最规范的配置JDK生成的SSL证书

1 找见JDK安装路径C:\Program Files\Java\jdk1.8.0_91\bin

2在这个路径下面打开dos窗口

3输入一下命令

keytool -genkey -alias tomcat -keyalg RSA -keystore F:\workspace\gitchexian\verify\src\main\resources\SSL.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证书就配置完了 

猜你喜欢

转载自www.cnblogs.com/krlin/p/9791488.html