日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

基于SpringBoot项目的https

發布時間:2024/7/5 javascript 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 基于SpringBoot项目的https 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

基于SpringBoot項目的https

在spring中配置項目運行的端口很簡單。

在application.properties中

server.port: 8080

這樣配置后,spring boot內嵌的tomcat服務器就是跑在8080端口啟動http服務。但是如果在配置中啟動https服務,用到的端口也是server.port。spring 不支持同時在配置中啟動http和https。
但是如果這樣配置,項目只能走http協議。如果想讓項目支持https協議,可以有兩種方法。
一:在配置中配置https的配置信息,http采用硬編碼的方式
二:用硬編碼的方式來寫https
用硬編碼的方式寫https有點麻煩,所以一般都采用第一種方式。
無論用哪種方式,想支持https,一定要生成一對秘鑰。用openssl生成證書:

openssl genrsa -out server.key 2048 //生成服務器端私鑰openssl req -new -key server.key -out server.csr //生成服務端證書請求文件 注意生成過程中需要你輸入一些服務端信息 openssl x509 -req -sha256 -in server.csr -CA ca.crt -CAkey ca.key -CAcreateserial -days 3650 -out server.crt //使用CA證書生成服務端證書 關于sha256,默認使用的是sha1,在新版本的chrome中會被認為是不安全的,因為使用了過時的加密算法。 openssl pkcs12 -export -in server.crt -inkey server.key -out server.pkcs12 //打包服務端的資料為pkcs12格式(非必要,只是換一種格式存儲上一步生成的證書)
生成過程中,需要創建訪問密碼,請記錄下來。 keytool -importkeystore -srckeystore server.pkcs12 -destkeystore server.jks -srcstoretype pkcs12 //生成服務端的keystore(.jks文件, 非必要,Java程序通常使用該格式的證書) 生成過程中,需要創建訪問密碼,請記錄下來。 把ca證書放到keystore中(非必要)
keytool -importcert -keystore server.jks -file ca.crt

生成證書后,讓瀏覽器信任跟證書(ca.crt)。
打開瀏覽器的設置。找到設置信任證書的部分。導入證書。
準備工作完畢,看一下代碼
application.properties

server.port: 8092 server.ssl.key-store=/home/fzk/key/server.jks server.ssl.key-store-password=123456 //這個是在生成證書的時候設置的密碼

fzk.port:8091 fzk.port:8091是自定義的名。因為不可能同時出現兩個server.port

同時支持http還需要一個java類
HttpsConfiguration.java (名字自己隨便起)

import org.apache.catalina.connector.Connector; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.context.embedded.EmbeddedServletContainerFactory; import org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainerFactory; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration;@Configuration public class HttpsConfiguration {@Value("${fzk.port}")private int port;@Beanpublic EmbeddedServletContainerFactory servletContainer() {TomcatEmbeddedServletContainerFactory tomcat = new TomcatEmbeddedServletContainerFactory();tomcat.addAdditionalTomcatConnectors(createHttpConnector());return tomcat;}private Connector createHttpConnector() {Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");connector.setScheme("http");connector.setPort(port);connector.setSecure(false);return connector;} }

@Configuration是spring的注解,表示這是一個配置。@Value("${fzk.port}")找到配置文件中的fzk.port賦值給int類型的port。還可以寫成下面這樣:

@Configuration(prefix = "fzk") public class HttpsConfiguration {private int port;public void setPort(int port){this.port = port;}public int getPort(){return port;} }

此時類中的屬性名和配置文件中的名一定要對應上。

這樣就可以讓項目同時支持http和https了。

上面說了還有另外一種方法,采用硬編碼https的請求的方式。

配置文件中可以不用寫服務端口號,直接看java類

@Configuration public class HttpsConfiguration {@Beanpublic EmbeddedServletContainerCustomizer containerCustomizer() {return new EmbeddedServletContainerCustomizer() {@Overridepublic void customize(ConfigurableEmbeddedServletContainer container) {Ssl ssl = new Ssl();// Server.jks中包含服務器私鑰和證書ssl.setKeyStore("/home/fzk/key/server.jks");ssl.setKeyStorePassword("123456");container.setSsl(ssl);container.setPort(8092);}};}@Beanpublic EmbeddedServletContainerFactory servletContainerFactory() {TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory() {@Overrideprotected void postProcessContext(Context context) {SecurityConstraint securityConstraint = new SecurityConstraint();securityConstraint.setUserConstraint("CONFIDENTIAL");SecurityCollection collection = new SecurityCollection();collection.addPattern("/*");securityConstraint.addCollection(collection);context.addConstraint(securityConstraint);}};factory.addAdditionalTomcatConnectors(createHttpConnector());return factory;}private Connector createHttpConnector() {Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");connector.setScheme("http");connector.setSecure(false);connector.setPort(8093);connector.setRedirectPort(8092);return connector;}
}

第一個bean的部分是使端口8092的https可以訪問。下面的部分是讓端口8093的http重定向到8092。

轉載于:https://www.cnblogs.com/hejunnuo/p/10323688.html

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的基于SpringBoot项目的https的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 精品资源在线 | 久久综合欧美 | 一本色道久久综合亚洲精品图片 | 超碰在线免费 | 国产精品久久久久久婷婷天堂 | 亚洲free性xxxx护士hd | 日本国产视频 | 久草视频手机在线观看 | 6680新视觉电影免费观看 | 六月丁香婷婷激情 | aa一级片 | 久久久久网 | 久久久久久久999 | 成人一二三区 | 日本国产一级片 | 成人免费视频网站 | 亚洲一区电影 | 欧美大黄 | 国产一区免费在线观看 | 中文字字幕在线中文乱码电影 | 男女搞网站 | 久久不射电影网 | 日韩成人高清 | 欧美一级免费视频 | 国产成人一区二区三区电影 | 男女啪啪免费网站 | 日韩一区二区精品视频 | 日韩综合av | 亚洲精品av中文字幕在线在线 | 99视频在线精品免费观看2 | 福利免费在线观看 | 欧美第一页在线 | 中文字幕乱码在线人视频 | 91在线播| 天堂网在线观看视频 | 性爱一级视频 | 天天操夜夜爱 | 一区二区在线免费看 | 国产精品va | 无码专区久久综合久中文字幕 | 在线观视频免费观看 | 欧美综合一区二区三区 | 一区二区网 | 在线观看av毛片 | 午夜av网 | 五月激情久久 | 蜜臀av夜夜澡人人爽人人 | 亚洲巨乳| 久久精选视频 | 国产一区欧美二区 | 无码日韩精品一区二区 | 国产精品一亚洲av日韩av欧 | 欧美a级免费 | 欧美精品一区二 | 久久久二区 | 综合色小说 | h片免费网站 | www.亚洲激情 | 波多野42部无码喷潮在线 | 欧美国产精品一区二区 | h成人在线| 国产在线a视频 | 亚洲精品国产美女 | 吊侵犯の奶水授乳羞羞漫画 | 在线播放一区 | 国产一级视频 | 亚洲区成人 | 一本久久精品一区二区 | 日韩三级电影网址 | 日本三不卡 | 久久久久久久久国产精品一区 | www.亚洲.com| 亚洲精品视频网 | 99久久人妻无码精品系列 | 日韩有码专区 | 日韩一区二区三区在线视频 | av黄色在线看 | 日本免费高清一区二区 | 日本电影一区二区三区 | 色狠狠一区二区三区 | 国产亚洲欧美一区二区 | 黄色操人视频 | 秋霞精品一区二区三区 | 性欧美丰满熟妇xxxx性久久久 | 艳妇臀荡乳欲伦交换电影 | 91传媒在线视频 | 色屁屁一区二区三区 | 久久av资源网 | 大象传媒成人在线观看 | 中文字幕亚洲高清 | 无码一区二区波多野结衣播放搜索 | 亚洲资源在线播放 | 日韩欧美在线免费 | 福利在线影院 | 黄色片网站在线播放 | www.色播 | 久久久久亚洲av片无码v | 在线免费一区二区 | 久操不卡 |