最全最規范的配置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證書就配置完了 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM