SpringBoot Web Https 配置

不管是游戲服務(wù)器開發(fā)剃毒,還是其它服務(wù)開發(fā)病袄,越來越多的平臺都要求服務(wù)端必須支持https的訪問。以增加安全性赘阀。比如目前火熱的小程序益缠,要求服務(wù)端必須支持https,蘋果商店也有說http請求要修改為https基公。所以https將會是游戲服務(wù)器的普遍需求幅慌。

一,證書生成

? ?證書可以自己使用jdk生成進(jìn)行測試轰豆。但是在正常使用的時候胰伍,需要去第三方機構(gòu)購買,網(wǎng)上也有免費的酸休。不過有效期有限制骂租。具體獲取證書的方法這里不再詳細(xì)說明了。一般拿到證書之后會得到這幾個文件:

? ?cert.pem chain.pem? ?fullchain.pem??privkey.pem


二斑司,將pem文件轉(zhuǎn)化為keystore文件

如果使用nginx跳轉(zhuǎn)的話渗饮,上面的證書文件可以直接使用,但是在tomcat中宿刮,證書的配置文件格式必須是.keystore的文件互站。所以需要做一下轉(zhuǎn)化。

1糙置、生成pkcs12格式的密鑰文件:

$ openssl pkcs12 -export -in?cert.pem -inkey privkey.pem -out my.pk12 -name mykey

(注:此過程中需要輸入密碼:123456)

2云茸、生成keystore:

$ keytool -importkeystore -deststorepass 123456 -destkeypass 123456 -destkeystore my.keystore -srckeystore my.pk12 -srcstoretype PKCS12 -srcstorepass 123456 -alias shkey

成功之后會獲得my.keystore文件。


三谤饭,在Spring boot web中配置https

首先是在application.properties中添加配置

server.port= 8446

server.ssl.key-store=/user/cert/my.keystore

server.ssl.key-store-password=123456

這樣配置之后标捺,啟動服務(wù),就可以https訪問了揉抵。


四亡容,同時支持http和https訪問

1,http請求不跳轉(zhuǎn)成https訪問

這種方式是http請求單獨走一個端口冤今,https請求單獨走一個端口闺兢。但是spring boot?的appplication.properties只能配置一個端口,這就需要我們手動再添加一個Connector了。

@Configuration

public class TomcatConfig {

@Bean

public EmbeddedServletContainerFactory servletContainerFactory(){

TomcatEmbeddedServletContainerFactory tomcatConfig = new TomcatEmbeddedServletContainerFactory();

tomcatConfig.addAdditionalTomcatConnectors(this.newHttpConnector());

return tomcatConfig;

}

private Connector newHttpConnector() {

Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");

connector.setScheme("http");

connector.setPort(8080);

connector.setSecure(false);

return connector;

}

}

這樣普通?的http請求屋谭,可以訪問8080端口了脚囊。

2,將http請求強制跳轉(zhuǎn)到https

有時候我們的一些舊業(yè)務(wù)是使用的http桐磁,但是新業(yè)務(wù)以及將來的框架都必須強制使用https悔耘,那就需要做一下跳轉(zhuǎn),把收到的http請求強制跳轉(zhuǎn)到https上面我擂。

@Configuration

public class TomcatConfig {

@Bean

public EmbeddedServletContainerFactory servletContainerFactory(){

TomcatEmbeddedServletContainerFactory tomcatConfig = new TomcatEmbeddedServletContainerFactory(){

@Override

protected void postProcessContext(Context context) {

SecurityConstraint securityConstraint = new SecurityConstraint();

securityConstraint.setUserConstraint("CONFIDENTIAL");

SecurityCollection collection = new SecurityCollection();

// 這里不知道為什么衬以,只能配置以/*結(jié)尾的path。這樣配置表示全部請求使用安全模式校摩,必須走h(yuǎn)ttps

collection.addPattern("/*");

//另外還可以配置哪些請求必須走h(yuǎn)ttps看峻,這表示以/home/開頭的請求必須走h(yuǎn)ttps

collection.addPattern("/home/*");

securityConstraint.addCollection(collection);

context.addConstraint(securityConstraint);

}

};

tomcatConfig.addAdditionalTomcatConnectors(this.newHttpConnector());

return tomcatConfig;

}

private Connector newHttpConnector() {

Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");

connector.setScheme("http");

connector.setPort(8080);

connector.setSecure(false);

// 如果只需要支持https訪問,這里把收到的http請求跳轉(zhuǎn)到https的端口

connector.setRedirectPort(8446);

return connector;

}

}


以上跳轉(zhuǎn)也可以使用nginx實現(xiàn)衙吩。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末互妓,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子分井,更是在濱河造成了極大的恐慌车猬,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,084評論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件尺锚,死亡現(xiàn)場離奇詭異珠闰,居然都是意外死亡,警方通過查閱死者的電腦和手機瘫辩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,623評論 3 392
  • 文/潘曉璐 我一進(jìn)店門伏嗜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人伐厌,你說我怎么就攤上這事承绸。” “怎么了挣轨?”我有些...
    開封第一講書人閱讀 163,450評論 0 353
  • 文/不壞的土叔 我叫張陵军熏,是天一觀的道長。 經(jīng)常有香客問我卷扮,道長荡澎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,322評論 1 293
  • 正文 為了忘掉前任晤锹,我火速辦了婚禮摩幔,結(jié)果婚禮上耽装,老公的妹妹穿的比我還像新娘娶聘。我一直安慰自己育特,他們只是感情好掂咒,可當(dāng)我...
    茶點故事閱讀 67,370評論 6 390
  • 文/花漫 我一把揭開白布墅拭。 她就那樣靜靜地躺著失仁,像睡著了一般掀序。 火紅的嫁衣襯著肌膚如雪爹脾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,274評論 1 300
  • 那天坡疼,我揣著相機與錄音椒涯,去河邊找鬼。 笑死回梧,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的祖搓。 我是一名探鬼主播狱意,決...
    沈念sama閱讀 40,126評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼拯欧!你這毒婦竟也來了详囤?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,980評論 0 275
  • 序言:老撾萬榮一對情侶失蹤镐作,失蹤者是張志新(化名)和其女友劉穎藏姐,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體该贾,經(jīng)...
    沈念sama閱讀 45,414評論 1 313
  • 正文 獨居荒郊野嶺守林人離奇死亡羔杨,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,599評論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了杨蛋。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片兜材。...
    茶點故事閱讀 39,773評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖逞力,靈堂內(nèi)的尸體忽然破棺而出曙寡,到底是詐尸還是另有隱情,我是刑警寧澤寇荧,帶...
    沈念sama閱讀 35,470評論 5 344
  • 正文 年R本政府宣布举庶,位于F島的核電站,受9級特大地震影響揩抡,放射性物質(zhì)發(fā)生泄漏户侥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,080評論 3 327
  • 文/蒙蒙 一捅膘、第九天 我趴在偏房一處隱蔽的房頂上張望添祸。 院中可真熱鬧,春花似錦寻仗、人聲如沸刃泌。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,713評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽耙替。三九已至亚侠,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間俗扇,已是汗流浹背硝烂。 一陣腳步聲響...
    開封第一講書人閱讀 32,852評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留铜幽,地道東北人滞谢。 一個月前我還...
    沈念sama閱讀 47,865評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像除抛,于是被迫代替她去往敵國和親狮杨。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,689評論 2 354

推薦閱讀更多精彩內(nèi)容