如何爲SpringBoot服務添加HTTPS證書

HTTPS是HTTP的安全版本,旨在提供數據傳輸層安全性(TLS)。當你的應用不使用HTTP協議的時候,瀏覽器地址欄就會出現一個不安全的提示。HTTPS加密每一個數據包以安全方式進行傳輸,並保護敏感數據免受竊聽者或黑客的攻擊。spring

您能夠經過在Web應用程序上安裝SSL證書來實現HTTPS,互聯網上受信任的證書一般是須要(CA)頒發的證書。爲了學習目的,您也可使用自簽名證書,好比:使用Java Keytool生成自簽名證書。瀏覽器

1、自簽名證書

您可使用位於JDK bin文件夾下的Keytool生成證書。例如,C:\Program Files\Java\jdk1.8.0_161\bin。可使用兩種自簽名證書,以下所示。安全

  1. 經過您本身的Java應用程序能夠輕鬆訪問JKS(Java密鑰庫)。JKS僅限於Java,不能從Java外部訪問。
  2. PKCS12:該證書使用的公鑰加密標準與語言無關,用於存儲加密的私鑰和證書。
本做者技術博客是:字母哥博客(z i m u g 點 康 姆),裏面包含精品技術文章集合,歡迎您的訪問。

2、如何生成自簽名證書

在Windows的搜索字段中鍵入cmd以找到命令提示符,而後以「以管理員身份運行」右鍵單擊。使用以下的keytool命令。您能夠說起所需的證書名稱,以下所示。app

C:\Program Files\Java\jdk1.8.0_161\bin>

keytool -genkeypair -alias selfsigned_localhost_sslserver -keyalg RSA -keysize 2048 -storetype PKCS12 -keystore ebininfosoft-ssl-key.p12 -validity 3650

自簽名證書受密碼保護。命令回車以後,會提示輸入密碼(這個密碼要記住,後面會用到)和其餘詳細信息,如如下屏幕截圖所示。學習

file

完成上述步驟後,便會建立PKS密鑰並將其存儲在JDK Bin文件夾下。測試

3、將SSL應用於Spring Boot應用程序

  1. 從JDK bin文件夾複製ebininfosoft-ssl-key並將其放在Spring Boot Application的src / main / resources下。
  2. 以下所示,將SSL密鑰信息添加到application.properties中。
#SSL Key Info
security.require-ssl=true
server.ssl.key-store-password=生成證書的密碼
server.ssl.key-store=src/main/resources/ebininfosoft-ssl-key.p12
server.ssl.key-store-type=PKCS12

4、寫一個Controller作簡單的測試

@RestController
@RequestMapping("/home")
public class HomeController {
 @RequestMapping(value = "/", method = RequestMethod.GET)
 public String hello() {
  return "welcome to spring boot application";
 }
}

若是您在不使用HTTPS的狀況下訪問Rest Endpoint,則會在瀏覽器中收到「Bad Request」消息。若是您使用HTTPS來訪問URL,則會獲得以下響應:"welcome to spring boot application"ui

歡迎關注個人博客,裏面有不少精品合集

  • 本文轉載註明出處(必須帶鏈接,不能只轉文字):字母哥博客
相關文章
相關標籤/搜索