springboot springmvc 支持 https


Spring Mvc和Spring Boot配置Tomcat支持Https

背景

最近在項目開發中需要讓自己的后端Restful接口支持https,在參考了很多前輩們的博客后總結了一些。

SpringBoot配置支持https

spring boot因為是使用內置的tomcat,所以只需要一些簡單的配置即可。

1.首先打開命令行工具,比如cmd,輸入以下命令 
keytool -genkey -alias tomcat -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore keystore.p12 -validity 3650 
keytool

2.然后在你的根目錄下面會看到一個.p12的文件,如下圖所示: 
p12

3.將它移到你的spring boot項目中的resources目錄下 
file

4.最后在application.properties中添加以下配置:

server.port=8888 server.ssl.key-store=classpath:keystore.p12 server.ssl.key-store-password=123456(此處密碼為第一步中創建.p12文件時你輸入的口令) server.ssl.keyStoreType=PKCS12 server.ssl.keyAlias=tomcat

5.最后啟動你的spring boot項目即可用https的方式訪問你的接口了。

SpringMvc配置支持https

由於spring mvc的項目需要依賴我們系統安裝的tomcat,所以需要對我們系統的tomcat進行相關配置

1.首先同樣需要生成密鑰文件等 
打開命令行輸入 
keytool -genkeypair -alias "tomcat" -keyalg "RSA" -keystore "C:\Program Files\Apache\apache-tomcat-7.0.77\bin\tomcat.keystore" 
輸入的相關配置和之前spring boot生成的那些問題是一樣的

輸入密鑰庫口令:
再次輸入新口令:
您的名字與姓氏是什么?
[Unknown]: hwangfantasy 您的組織單位名稱是什么? [Unknown]: hwangfantasy 您的組織名稱是什么? [Unknown]: hwangfantasy 您所在的城市或區域名稱是什么? [Unknown]: hangzhou 您所在的省/市/自治區名稱是什么? [Unknown]: zhejiang 該單位的雙字母國家/地區代碼是什么? [Unknown]: cn CN=hwangfantasy, OU=hwangfantasy, O=hwangfantasy, L=hangzhou, ST=zhejiang, C=cn是否正確? [否]: y 輸入 <tomcat> 的密鑰口令 (如果和密鑰庫口令相同, 按回車):

然后在你的tomcat的bin目錄下會出現一個 tomcat.keystore文件。

2.修改server.xml 
找到tomcat/conf目錄下面的server.xml。找到其中含有 
Define a SSL HTTP/1.1 Connector on port 8443 
節點的Connector,取消掉原本的注釋,並修改成以下內容:

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystoreFile="C:/Program Files/Apache/apache-tomcat-7.0.77/bin/tomcat.keystore" keystorePass="123456" />

其實就是增加了keystoreFilekeystorePass兩個屬性,其中keystoreFile最好使用絕對路徑,因為如果你和我一樣使用intellj idea作為開發工具的話,使用相對路徑,則idea啟動spring mvc項目是無法成功加載keystore的,因為idea讀取的配置是從idea的臨時目錄下 
C:\Users\hwangfantasy\.IntelliJIdea2017.1\system\tomcat 
讀取的,而keystore不會在臨時目錄下,所以需要改成絕對路徑才能保證通過idea去啟動tomcat時能成功加載https的配置。

3.最后啟動tomcat即可使用https接口 
最后無論是將你的web項目copy到tomcat下的webapps目錄下直接啟動還是通過idea等工具啟動項目和tomcat都可以成功使用https接口了。


免責聲明!

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



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