溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

springboot添加https服務(wù)器的方法

發(fā)布時(shí)間:2020-09-29 18:18:35 來源:腳本之家 閱讀:157 作者:big_sea_m 欄目:編程語言

什么是https

要說https我們得先說SSL(Secure Sockets Layer,安全套接層),這是一種為網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議,SSL在網(wǎng)絡(luò)傳輸層對網(wǎng)絡(luò)連接進(jìn)行加密。SSL協(xié)議可以分為兩層:SSL記錄協(xié)議(SSL Record Protocol),它建立在可靠的傳輸協(xié)議如TCP之上,為高層協(xié)議提供數(shù)據(jù)封裝、壓縮、加密等基本功能支持;SSL握手協(xié)議(SSL Handshake Protocol),它建立在SSL記錄協(xié)議之上,用于在實(shí)際數(shù)據(jù)傳輸開始之前,通信雙方進(jìn)行身份認(rèn)證、協(xié)商加密算法、交換加密密鑰等。在Web開發(fā)中,我們是通過HTTPS來實(shí)現(xiàn)SSL的。HTTPS是以安全為目標(biāo)的HTTP通道,簡單來說就是HTTP的安全版,即在HTTP下加入SSL層,所以說HTTPS的安全基礎(chǔ)是SSL,不過這里有一個(gè)地方需要小伙伴們注意,就是我們現(xiàn)在市場上使用的都是TLS協(xié)議(Transport Layer Security,它來源于SSL),而不是SSL,只不過由于SSL出現(xiàn)較早并且被各大瀏覽器支持因此成為了HTTPS的代名詞,。你可以把HTTPS和SSL的關(guān)系理解成iPhone和富土康的關(guān)系,大概就是這樣哈。

在安卓開發(fā)中發(fā)現(xiàn)很多App都是https訪問,為了自己方便測試,自己搭建一個(gè)簡單的https服務(wù)器。

首先使用keytool生成證書,該生成的證書會被檢測到有風(fēng)險(xiǎn),自己使用無所謂啦:)

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 證書的有效期

然后根據(jù)提示填寫信息就可以了

再在springboot的配置文件中添加https的配置

server.port=8443
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=123456
server.ssl.keyStoreType=PKCS12
server.ssl.keyAlias=tomcat

簡單配置以上就可以了

可以將http重定向到https,做如下配置就OK啦這里寫代碼片

 @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(initiateHttpConnector());
    return tomcat;
  }
  private Connector initiateHttpConnector() {
    Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
    connector.setScheme("http");
    connector.setPort(8080);
    connector.setSecure(false);
    connector.setRedirectPort(8443);
    return connector;
  }

在安卓端訪問也可以用下面方法

// 生成jks證書
keytool -genkey -alias tomcat -keyalg RSA -keystore dahai_server.jks -validity 3600 -storepass 123456

生成簽名文件

keytool -export -alias tomcat -file dahai_server.cer -keystore dahai_server.jks -storepass 123456

總結(jié)

以上所述是小編給大家介紹的springboot添加https服務(wù)器的方法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對億速云網(wǎng)站的支持!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI