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證書就配置完了
