詳細(xì)SpringBoot框架教程——SpringBoot配置SSL(https)

本篇文章主要內(nèi)容
SpringBoot配置SSL(https)
SpringBoot全局異常處理
SpringBoot 404頁(yè)面處理
視頻觀看戳??????

SpringBoot配置SSL(https)
SpringBoot可以通過(guò)在application.properties或application.yml配置文件中配置各種server.ssl.*屬性來(lái)聲明性使用SSL(https),比如下面的例子在application.properties中設(shè)置SSL屬性:

如果使用了上面的配置就表示springboot應(yīng)用程序不再在端口8080上支持HTTP連接請(qǐng)求,SpringBoot不能通過(guò)配置application.properties來(lái)實(shí)現(xiàn)既支持HTTP連接又支持HTTPS連接,這是做不到的,如果要同時(shí)支持HTTP和HTTPS,則需要以編程方式配置其中的一個(gè),建議使用application.properties文件來(lái)配置HTTPS,以編程方式配置HTTP,這是比較容易的方法;
SpringBoot支持配置https具體步驟:
1、生成證書,可以使自簽名證書(平時(shí)測(cè)試的時(shí)候)或者從SSL證書授權(quán)中心購(gòu)買證書(上線);
平時(shí)生成證書進(jìn)行測(cè)試的話,有兩種生成證書的方式:
(1)利用JDK工具生成證書

證書生成后我們可以驗(yàn)證下jks是否包含了完整的證書鏈:
keytool -list -v -keystore server.jks
keytool -list -v -keystore server.pkcs12
(2)利用Openssl工具生成證書
通過(guò)openssl來(lái)生成,如果linux中沒(méi)有安裝openssl,需要安裝一下,執(zhí)行:
yum install openssl openssl-devel -y
1、#生成一個(gè)RSA密鑰 (私鑰)
openssl genrsa -out server.key 2048
2、#生成一個(gè)證書請(qǐng)求
openssl req -new -key server.key -out server.csr -subj "/C=CN/ST=Beijing/L=Beijing/O=power Inc./OU=Web Security/CN=power.com"
3、#自己簽發(fā)證書
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt
字段解讀
C字段:Country,單位所在國(guó)家,為兩位數(shù)的國(guó)家縮寫,如:CN 表示中國(guó);
ST 字段:State/Province,單位所在州或?。?/span>
L 字段:Locality,單位所在城市/或縣區(qū);
O 字段:Organization,此網(wǎng)站的單位名稱;
OU 字段:Organization Unit,下屬部門名稱,也常常用于顯示其他證書相關(guān)信息,如證書類型,證書產(chǎn)品名稱或身份驗(yàn)證類型或驗(yàn)證內(nèi)容等;
CN 字段:Common Name,網(wǎng)站的域名;
轉(zhuǎn)換為pkcs12格式(因?yàn)樵?/span>Java中使用證書,需要轉(zhuǎn)換一下格式)
openssl pkcs12 -export -clcerts -in server.crt?-inkey server.key -out server.p12
openssl pkcs12 -export -clcerts -in server.crt?-inkey server.key -out server.pkcs12
轉(zhuǎn)換為jks格式(因?yàn)樵?/span>Java中使用證書,需要轉(zhuǎn)換一下格式,jks是java獨(dú)有的)
keytool?-importkeystore?-srckeystore?server.pkcs12?-destkeystore?server.jks?-srcstoretype?pkcs12?-deststoretype?jks
2、配置或編寫代碼;
注意我們是在Java環(huán)境中,常用的證書形式有p12、pkcs12格式、jks格式,如果不是該格式,需要轉(zhuǎn)換;p12、pkcs12是同一個(gè),只是證書的后綴不同而已;
作業(yè):?jiǎn)为?dú)有一個(gè)Tomcat,配置一下https;
SpringBoot全局異常處理
在項(xiàng)目的開(kāi)發(fā)中,如果報(bào)錯(cuò)了,直接在頁(yè)面顯示500錯(cuò)誤,輸出一大堆的異常信息,這對(duì)應(yīng)用戶來(lái)說(shuō)體驗(yàn)不友好,所以在企業(yè)里面對(duì)這些異常一般都會(huì)統(tǒng)一捕獲,由一個(gè)專門的異常處理類來(lái)統(tǒng)一處理。(原來(lái)在ssm框架中,我們是在tomcat定義錯(cuò)誤頁(yè)或者web.xml定義錯(cuò)誤頁(yè))
具體參考課程演示和代碼;
SpringBoot 404頁(yè)面處理
當(dāng)輸入地址有誤,會(huì)進(jìn)入springboot默認(rèn)的白板404頁(yè)面,對(duì)用戶不太友好,我們可以統(tǒng)一定義一個(gè)全局的404錯(cuò)誤處理;

具體參考課程演示和代碼;
SpringBoot更多話題,同學(xué)們可以學(xué)習(xí)一下:
SpringBoot restTemplate
SpringBoot webClient
Validation 驗(yàn)證(springmvc 303驗(yàn)證) @Vilidate 注解驗(yàn)證
SpringBoot 多數(shù)據(jù)源
SpringBoot 服務(wù)監(jiān)控 springboot actuator、SpringBoot ?admin;
springboot整合thymeleaf
Springboot統(tǒng)一緩存處理
SpringBoot 定時(shí)任務(wù)quartz
如果想更深入的學(xué)習(xí)springboot,奉上springboot全套視頻教程,視頻學(xué)習(xí)效果更佳,走過(guò)路過(guò)別忘素質(zhì)三連哦~~

