使用Spring Boot開發Web項目 添加https支持

本文參考地址:https://blog.csdn.net/tony1130/article/details/5134318

1.什麼是https?

HTTPS其實是有兩部分組成:HTTP + SSL / TLS,

也就是在HTTP上又加了一層處理加密信息的模塊,並且會進行身份的驗證。

 

2.SSL(Secure Sockets Layer,安全套接層),這是一種爲網絡通信提供安全及數據完整性的一種安全協議,SSL在網絡傳輸層對網絡連接進行加密。SSL協議可以分爲兩層:SSL記錄協議(SSL Record Protocol),它建立在可靠的傳輸協議如TCP之上,爲高層協議提供數據封裝、壓縮、加密等基本功能支持;SSL握手協議(SSL Handshake Protocol),它建立在SSL記錄協議之上,用於在實際數據傳輸開始之前,通信雙方進行身份認證、協商加密算法、交換加密密鑰等。

3.證書生成
使用SSL需要我們先生成一個證書,這個證書我們可以自己生成,也可以從SSL證書授權中心獲得,自己生成的不被客戶端認可,從授權中心獲得的可以被客戶端認可,提供SSL授權證書的服務商有很多,小夥伴們有興趣可以自行查找,我這裏以自己生成的證書爲例。

4.Keytool 是一個Java 數據證書的管理工具 ,Keytool 將密鑰(key)和證書(certificates)存在一個稱爲keystore的文件中 在keystore裏,包含兩種數據:
密鑰實體(Key entity)——密鑰(secret key)又或者是私鑰和配對公鑰(採用非對稱加密)
可信任的證書實體(trusted certificate entries)——只包含公鑰
ailas(別名)每個keystore都關聯這一個獨一無二的alias,這個alias通常不區分大小寫

5.證書keystore生成 生成方式也很簡單,直接使用java自帶的命令keytool來生成,生成命令如下:

keytool -genkey -alias tomcat  -storetype PKCS12 -keyalg RSA -keysize 2048  -keystore keystore.p12 -validity 3650

解釋:

1.-storetype 指定密鑰倉庫類型
2.-keyalg 生證書的算法名稱,RSA是一種非對稱加密算法
3.-keysize 證書大小(祕鑰長度)
4.-keystore 生成的證書文件的存儲路徑
5.-validity 證書的有效期(天爲單位)6.-alias       產生別名

執行完上面一行命令後,在你的系統的當前用戶目錄下會生成一個keystore.p12文件,將這個文件拷貝到我們項目的根目錄下,然後修改application.properties文件,添加HTTPS支持。在application.properties中添加如下代碼:

server.ssl.key-store=keystore.p12
server.ssl.key-store-password=111111
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias:tomcat

DK中keytool 常用命令:

-genkey      在用戶主目錄中創建一個默認文件".keystore",還會產生一個mykey的別名,mykey中包含用戶的公鑰、私鑰和證書
(在沒有指定生成位置的情況下,keystore會存在用戶系統默認目錄,如:對於window xp系統,會生成在系統的C:/Documents and Settings/UserName/文件名爲“.keystore”)
-alias       產生別名
-keystore    指定密鑰庫的名稱(產生的各類信息將不在.keystore文件中)
-keyalg      指定密鑰的算法 (如 RSA  DSA(如果不指定默認採用DSA))
-validity    指定創建的證書有效期多少天
-keysize     指定密鑰長度
-storepass   指定密鑰庫的密碼(獲取keystore信息所需的密碼)
-keypass     指定別名條目的密碼(私鑰的密碼)
-dname       指定證書擁有者信息 例如:  "CN=名字與姓氏,OU=組織單位名稱,O=組織名稱,L=城市或區域名稱,ST=州或省份名稱,C=單位的兩字母國家代碼"
-list        顯示密鑰庫中的證書信息      keytool -list -v -keystore 指定keystore -storepass 密碼
-v           顯示密鑰庫中的證書詳細信息
-export      將別名指定的證書導出到文件  keytool -export -alias 需要導出的別名 -keystore 指定keystore -file 指定導出的證書位置及證書名稱 -storepass 密碼
-file        參數指定導出到文件的文件名
-delete      刪除密鑰庫中某條目          keytool -delete -alias 指定需刪除的別  -keystore 指定keystore  -storepass 密碼
-printcert   查看導出的證書信息          keytool -printcert -file yushan.crt
-keypasswd   修改密鑰庫中指定條目口令    keytool -keypasswd -alias 需修改的別名 -keypass 舊密碼 -new  新密碼  -storepass keystore密碼  -keystore sage
-storepasswd 修改keystore口令      keytool -storepasswd -keystore e:/yushan.keystore(需修改口令的keystore) -storepass 123456(原始密碼) -new yushan(新密碼)
-import      將已簽名數字證書導入密鑰庫  keytool -import -alias 指定導入條目的別名 -keystore 指定keystore -file 需導入的證書

6、keystore信息的查看:
   keytool -list  -v -keystore e:/keytool /yushan.keystore -storepass 123456

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章