欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

springboot中server.ssl.key-store配置路徑的問(wèn)題小結(jié)

 更新時(shí)間:2024年02月01日 09:58:55   作者:丸子的博客  
這篇文章主要介紹了springboot中server.ssl.key-store配置路徑的問(wèn)題,文中還記錄了Spring Boot SSL(https)實(shí)例,介紹在web程序中使用自簽名的SSL(HTTPS)證書(shū)及創(chuàng)建SSL認(rèn)證,感興趣的朋友跟隨小編一起看看吧

springboot中server.ssl.key-store配置路徑的問(wèn)題

在yml中配置路徑為:
key-store: classpath:xtszhcj.jks
啟動(dòng)服務(wù)報(bào)錯(cuò):
獲取的路徑前有tomcat.basedir路徑file:的字樣+classpath(正確路徑),導(dǎo)致取不到對(duì)應(yīng)路徑文件報(bào)錯(cuò)。

原因:

之前一直可以用,發(fā)現(xiàn)有人將tomcat版本改為8.0.21,之前使用tomcat版本為8.5.16。改為8.5.16就好了。
源碼追蹤,發(fā)現(xiàn)獲取key-store路徑前會(huì)加file:導(dǎo)致獲取不到文件后,自動(dòng)前面加上tomcat.basedir.所以日志打印中有上訴路徑找不到。具體為什么會(huì)加file:沒(méi)有再去跟蹤代碼。

擴(kuò)展:

Spring Boot SSL(https)實(shí)例

此篇博文記錄了在web程序中使用自簽名的SSL(HTTPS)證書(shū)及創(chuàng)建SSL認(rèn)證。

SSL關(guān)鍵的配置

Spring Boot中HTTPS的配置(application.properties)

server.port=8443
server.ssl.key-alias=selfsigned_localhost_sslserver
server.ssl.key-password=changeit
server.ssl.key-store=classpath:ssl-server.jks
server.ssl.key-store-provider=SUN
server.ssl.key-store-type=JKS

將HTTP重定向到HTTPS

private Connector redirectConnector() {
  Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
  connector.setScheme("http");
  connector.setPort(8080);
  connector.setSecure(false);
  connector.setRedirectPort(8443);
  return connector;
}

基本概念

SSL:安全套接字層(Secure Sockets Layer)。此協(xié)議用于兩個(gè)系統(tǒng)網(wǎng)絡(luò)連接和傳輸時(shí)對(duì)數(shù)據(jù)的加密。傳輸過(guò)程中防止了黑客的讀取和竄改。

TLS:傳輸層安全(Transport Layer Security)相對(duì)于SSL更加的安全,相當(dāng)于SSL的升級(jí)版。目前所有的ca(certificate authorities)機(jī)構(gòu)都是基于TLS的,但是目前在互聯(lián)網(wǎng)上SSL更加流行。

HTTPS:超文本傳輸協(xié)議安全(Hyper Text Transfer Protocol Secure)在web網(wǎng)站上使用了SSL。這樣會(huì)比HTTP更加安全。

信任庫(kù)及密鑰庫(kù)(Truststore and Keystore):這兩個(gè)庫(kù)都是存儲(chǔ)了SSL證書(shū)。truststore存儲(chǔ)了公鑰信息,keystore存儲(chǔ)私鑰信息。

下面是創(chuàng)建自簽名證書(shū)

keytool -genkey -alias selfsigned_localhost_sslserver -keyalg RSA -keysize 2048 -validity 700 -keypass changeit -storepass changeit -keystore ssl-server.jks

解析下:

-genkey:生成證書(shū);

-alias selfsigned_localhost_sslserver:設(shè)置證書(shū)的別名;

-keyalg RSA -keysize 2048 -validity 700:truststore和keystore的密碼;

-keystore ssl-server.jks:存儲(chǔ)密鑰的文件。其中JKS的含義是Java Key Store

執(zhí)行完上面的代碼后,會(huì)詢(xún)問(wèn)一些問(wèn)題如下:

查看jks中的證書(shū)信息:

下面是關(guān)于程序方面的內(nèi)容

添加RESTful接口

@RestController
class SecuredServerController{
    @RequestMapping("/secured")
    public String secured(){
        System.out.println("Inside secured()");
        return "Hello user !!! : " + new Date();
    }
}

將ssl-server.jks放到resources中在application.properties中配置如下:

server.port=8443
server.ssl.key-alias=selfsigned_localhost_sslserver
server.ssl.key-password=changeit
server.ssl.key-store=classpath:ssl-server.jks
server.ssl.key-store-provider=SUN
server.ssl.key-store-type=JKS

這樣Spring Boot就配置好HTTPS了

url輸入https://localhost:8443/secured

就進(jìn)入了https站點(diǎn)了

將HTTP重定向到HTTPS

將8080端口重定向到8443上面:

@Bean
public EmbeddedServletContainerFactory servletContainer() {
  TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
      @Override
      protected void postProcessContext(Context context) {
        SecurityConstraint securityConstraint = new SecurityConstraint();
        securityConstraint.setUserConstraint("CONFIDENTIAL");
        SecurityCollection collection = new SecurityCollection();
        collection.addPattern("/*");
        securityConstraint.addCollection(collection);
        context.addConstraint(securityConstraint);
      }
    };
  tomcat.addAdditionalTomcatConnectors(redirectConnector());
  return tomcat;
}
private Connector redirectConnector() {
  Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
  connector.setScheme("http");
  connector.setPort(8080);
  connector.setSecure(false);
  connector.setRedirectPort(8443);
  return connector;
}

源碼打包下載地址:

https://github.com/fengfanchen/Java/tree/master/ssl-server

到此這篇關(guān)于springboot中server.ssl.key-store配置路徑的問(wèn)題的文章就介紹到這了,更多相關(guān)springboot server.ssl.key-store配置路徑內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Seata?環(huán)境搭建部署過(guò)程

    Seata?環(huán)境搭建部署過(guò)程

    Seata是一個(gè)分布式事務(wù),seata服務(wù)端也是一個(gè)微服務(wù),需要和其他微服務(wù)一樣需要注冊(cè)中心和配置中心,這篇文章主要介紹了Seata?環(huán)境搭建,需要的朋友可以參考下
    2022-10-10
  • Java遍歷并刪除Map的四種方法對(duì)比

    Java遍歷并刪除Map的四種方法對(duì)比

    在Java中,遍歷并刪除?Map?中的元素有四種常見(jiàn)的方法,每種方法都有其適用場(chǎng)景和優(yōu)缺點(diǎn),下面小編就來(lái)和大家詳細(xì)介紹一下這幾種方法的具體實(shí)現(xiàn)吧
    2024-10-10
  • Java super關(guān)鍵字調(diào)用父類(lèi)過(guò)程解析

    Java super關(guān)鍵字調(diào)用父類(lèi)過(guò)程解析

    這篇文章主要介紹了Java super關(guān)鍵字調(diào)用父類(lèi)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-12-12
  • Layui 后臺(tái)加載菜單欄名稱(chēng)以及url的例子

    Layui 后臺(tái)加載菜單欄名稱(chēng)以及url的例子

    今天小編就為大家分享一篇Layui 后臺(tái)加載菜單欄名稱(chēng)以及url的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-09-09
  • spring mvc rest 接口選擇性加密解密詳情

    spring mvc rest 接口選擇性加密解密詳情

    這篇文章主要介紹了spring mvc rest 接口選擇性加密解密詳情,spring mvc rest接口以前是采用https加密的,但是現(xiàn)在需要更加安全的加密。而且不是對(duì)所有的接口進(jìn)行加密,是對(duì)部分接口進(jìn)行加密,接口返回值進(jìn)行解密
    2022-07-07
  • 淺談Action+Service +Dao 功能

    淺談Action+Service +Dao 功能

    下面小編就為大家?guī)?lái)一篇淺談Action+Service +Dao 功能。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-07-07
  • Mybatis?selectKey 如何返回新增用戶(hù)的id值

    Mybatis?selectKey 如何返回新增用戶(hù)的id值

    這篇文章主要介紹了Mybatis?selectKey 如何返回新增用戶(hù)的id值,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java中的構(gòu)造方法和方法重載完整代碼

    Java中的構(gòu)造方法和方法重載完整代碼

    在Java編程中,構(gòu)造方法用于初始化對(duì)象,而方法重載允許同一個(gè)類(lèi)中存在多個(gè)同名方法但參數(shù)不同,文中通過(guò)代碼及圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2024-10-10
  • 淺談Java方法調(diào)用的優(yōu)先級(jí)問(wèn)題

    淺談Java方法調(diào)用的優(yōu)先級(jí)問(wèn)題

    這篇文章主要介紹了淺談Java方法調(diào)用的優(yōu)先級(jí)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-10-10
  • 定義hashcode時(shí)使用31系數(shù)的原因

    定義hashcode時(shí)使用31系數(shù)的原因

    這篇文章主要介紹了定義hashcode時(shí)使用31系數(shù)的原因,具有一定借鑒價(jià)值,需要的朋友可以參考下
    2018-01-01

最新評(píng)論