Spring Boot新增HTTPS服務
阿新 • • 發佈:2018-12-19
1 進入windows命令列輸入以下內容:
keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650
①.-storetype 指定金鑰倉庫型別 ②.-keyalg 生證書的演算法名稱,RSA是一種非對稱加密演算法 ③.-keysize 證書大小 ④.-keystore 生成的證書檔案的儲存路徑 ⑤.-validity 證書的有效期
2 填寫資訊
你的姓名、公司名稱,地址等,最後輸入: 是 + enter
3 配置application.properties檔案:
server.ssl.key-store=keystore.p12 server.ssl.key-store-password=123456 #你自己的密碼 server.ssl.keyStoreType=PKCS12 server.ssl.keyAlias:tomcat
第一行指定簽名檔案,第二行指定簽名密碼,第三行指定金鑰倉庫型別,第四個是別名。
4
@Bean public EmbeddedServletContainerFactory servletContainer() { TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() { @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(8081); return connector; }
這個時候當我們訪問http://localhost:8080的時候系統會自動重定向到https://localhost:8081這個地址上。