最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

spring boot配置ssl實(shí)現(xiàn)HTTPS的方法

 更新時(shí)間:2019年03月31日 15:39:53   作者:大海沒有水  
這篇文章主要介紹了spring boot配置ssl實(shí)現(xiàn)HTTPS的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧

傳輸層安全性協(xié)議(英語:Transport Layer Security,縮寫作 TLS),及其前身安全套接層(Secure Sockets Layer,縮寫作 SSL)是一種安全協(xié)議,目的是為互聯(lián)網(wǎng)通信,提供安全及數(shù)據(jù)完整性保障。網(wǎng)景公司(Netscape)在1994年推出首版網(wǎng)頁瀏覽器,網(wǎng)景導(dǎo)航者時(shí),推出HTTPS協(xié)議,以SSL進(jìn)行加密,這是SSL的起源。IETF將SSL進(jìn)行標(biāo)準(zhǔn)化,1999年公布第一版TLS標(biāo)準(zhǔn)文件。隨后又公布RFC 5246 (2008年8月)與 RFC 6176 (2011年3月)。在瀏覽器、電子郵件、即時(shí)通信、VoIP、網(wǎng)絡(luò)傳真等應(yīng)用程序中,廣泛支持這個(gè)協(xié)議。主要的網(wǎng)站,如Google、Facebook等也以這個(gè)協(xié)議來創(chuàng)建安全連接,發(fā)送數(shù)據(jù)。目前已成為互聯(lián)網(wǎng)上保密通信的工業(yè)標(biāo)準(zhǔn)。

SSL包含記錄層(Record Layer)和傳輸層,記錄層協(xié)議確定傳輸層數(shù)據(jù)的封裝格式。傳輸層安全協(xié)議使用X.509認(rèn)證,之后利用非對稱加密演算來對通信方做身份認(rèn)證,之后交換對稱密鑰作為會(huì)談密鑰(Session key)。這個(gè)會(huì)談密鑰是用來將通信兩方交換的數(shù)據(jù)做加密,保證兩個(gè)應(yīng)用間通信的保密性和可靠性,使客戶與服務(wù)器應(yīng)用之間的通信不被攻擊者竊聽。

在配置TLS/SSL之前我們需要拿到相應(yīng)簽名的證書,測試實(shí)例可以使用Java 下面的 Keytool 來生成證書:

打開控制臺(tái)輸入:

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

這里的別名是 keystore.p12,密碼什么的直接設(shè)置就好,然后回車

然后根據(jù)路徑找到生成好的證書,把證書復(fù)制到項(xiàng)目里,我是放到了這里

放好證書后,建立一個(gè)index.html放到resources/templates文件夾下,一會(huì)用于測試。

再配置properties

server.port=8888
server.tomcat.uri-encoding=utf-8
server.servlet.context-path=/demo 
server.ssl.key-store=keystore.p12
server.ssl.key-store-password=123456
server.ssl.key-store-type=PKCS12
server.ssl.key-alias=tomcat 
spring.thymeleaf.prefix=classpath:/templates/

配置好properties再加入下面的代碼

@Configuration
public class HttpsConfig {
 
  /**
   * spring boot 1.0
   */
  /* @Bean
  public EmbeddedServletContainerFactory servletContainer() {
    TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory() {
      @Override
      protected void postProcessContext(Context context) {
        SecurityConstraint constraint = new SecurityConstraint();
        constraint.setUserConstraint("CONFIDENTIAL");
        SecurityCollection collection = new SecurityCollection();
        collection.addPattern("/*");
        constraint.addCollection(collection);
        context.addConstraint(constraint);
      }
    };
    tomcat.addAdditionalTomcatConnectors(httpConnector());
    return tomcat;
  }*/
 
  /**
   * spring boot 2.0
   * @return
   */
  @Bean
  public TomcatServletWebServerFactory servletContainer() {
    TomcatServletWebServerFactory tomcat = new TomcatServletWebServerFactory() {
      @Override
      protected void postProcessContext(Context context) {
        SecurityConstraint constraint = new SecurityConstraint();
        constraint.setUserConstraint("CONFIDENTIAL");
        SecurityCollection collection = new SecurityCollection();
        collection.addPattern("/*");
        constraint.addCollection(collection);
        context.addConstraint(constraint);
      }
    };
    tomcat.addAdditionalTomcatConnectors(httpConnector());
    return tomcat;
  }
 
  @Bean
  public Connector httpConnector() {
    Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");
    connector.setScheme("http");
    //Connector監(jiān)聽的http的端口號
    connector.setPort(8080);
    connector.setSecure(false);
    //監(jiān)聽到http的端口號后轉(zhuǎn)向到的https的端口號
    connector.setRedirectPort(8888);
    return connector;
  }
 
}
@Controller
@RequestMapping
public class ViewControlller {
 
  @GetMapping("index")
  public String index(){
    return "index";
  }
}

值得注意的是加入的springboot jar的版本不同代碼有一定的改變,我這里用的是2.0的版本,還有就是要想跳轉(zhuǎn)到html頁面的時(shí)候一定注意的就是千萬不要在Controller中用@RestController而是要用Controller,如果用RestController的話就會(huì)直接把你的index解析顯示在頁面當(dāng)中,就不會(huì)跳轉(zhuǎn)了,還有就是想要跳轉(zhuǎn)的話一定要加入下面的兩個(gè)jar包

<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-web</artifactId>
  <version>2.0.1.RELEASE</version>
</dependency>
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>

準(zhǔn)備完畢后啟動(dòng)項(xiàng)目,打印臺(tái)顯示

再輸入:

127.0.0.1:8080/demo/index就會(huì)自動(dòng)跳轉(zhuǎn)

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

盐源县| 博客| 蛟河市| 漳浦县| 石狮市| 信阳市| 长海县| 溆浦县| 阿尔山市| 黎平县| 平定县| 登封市| 习水县| 出国| 延寿县| 南宁市| 富宁县| 庐江县| 蕉岭县| 涟源市| 仙桃市| 虞城县| 靖西县| 东阿县| 扶沟县| 改则县| 右玉县| 报价| 福泉市| 泸州市| 射洪县| 石台县| 五常市| 永宁县| 银川市| 大关县| 兴义市| 青岛市| 卢龙县| 马龙县| 长垣县|