一区二区三区欧美日韩-一区二区三区欧美-一区二区三区免费在线视频-一区二区三区免费在线观看-久久精品店-久久精品第一页

歡迎您光臨深圳塔燈網(wǎng)絡(luò)科技有限公司!
電話圖標(biāo) 余先生:13699882642

網(wǎng)站百科

為您解碼網(wǎng)站建設(shè)的點(diǎn)點(diǎn)滴滴

Spring Eureka 配置 SSL

發(fā)表日期:2019-01 文章編輯:小燈 瀏覽次數(shù):2476

前言

在搭建Spring Cloud體系的過(guò)程中,默認(rèn)是使用非ssl(http)配置,搭建起來(lái)也相當(dāng)容易。也許是因?yàn)槭褂胹sl配置要稍復(fù)雜一些,也許是因?yàn)楹芏嗳丝紤]到使用ssl效率的問(wèn)題,或者又是因?yàn)閟sl證書(shū)費(fèi)用的問(wèn)題,再或者是因?yàn)樽约旱墓雀杓夹g(shù)不行,總之我沒(méi)能在網(wǎng)上找到任何關(guān)于Spring Cloud SSL配置的完整示例。所以接下來(lái),我會(huì)向大家演示一下Spring Cloud的ssl完整配置。因?yàn)槲易约旱哪芰τ邢蓿抑荒鼙WC所有的配置是我自己測(cè)試通過(guò)的,如果中間什么配置是錯(cuò)誤不可取的,還希望各位大神向我指出。

在開(kāi)始之前需要向大家說(shuō)明一下,這個(gè)系列不是手把手的基礎(chǔ)教程,就是說(shuō)我不會(huì)一步一步的向你普及spring cloud的使用,這方面已經(jīng)有很多很成熟的系統(tǒng)教程。我只是在我自己的理解的基礎(chǔ)上,補(bǔ)充一些網(wǎng)上沒(méi)有或者很少出現(xiàn)的一些東西。

首先我們從eureka開(kāi)始。為什么從它開(kāi)始,是因?yàn)閹缀跛械膕pring cloud教程都會(huì)先教你從服務(wù)注冊(cè)中心搭建開(kāi)始。

創(chuàng)建證書(shū)

既然要使用ssl,那證書(shū)當(dāng)然是必不可少的,我們需要?jiǎng)?chuàng)建兩個(gè)證書(shū),eureka-server.jks和eureka-client.jks。這里我們使用keytool來(lái)生成我們的認(rèn)證證書(shū)。

keytool -genkey -alias eureka-server-storetype JKS -keyalg RSA -keysize 2048 -keystore eureka-server.jks -validity 365
keytool -genkey -alias eureka-client-storetype JKS -keyalg RSA -keysize 2048-keystore eureka-client.jks -validity 365

回車(chē)鍵后會(huì)讓你輸入密碼,然后在名字與姓氏中輸入你自己的ip地址。這樣服務(wù)端和客戶端的證書(shū)就生成好了。接下來(lái)我們需要從生成的jks中導(dǎo)出公鑰證書(shū)。

keytool -export -alias eureka-server -keystore eureka-server.jks -rfc -file eureka-server.cer
keytool -export -alias eureka-client -keystore eureka-client.jks -rfc -file eureka-client.cer

這里會(huì)要求你輸入上一步你設(shè)置的密碼,執(zhí)行成功后會(huì)提示 存儲(chǔ)在文件 eureka-server.cer中的證書(shū)。然后把公鑰證書(shū)導(dǎo)入到truststore中:

keytool -import -alias eureka-server -trust -file eureka-server.cer -keystore eureka-server-trust.jks
keytool -import -alias eureka-client -trust -file eureka-client.cer -keystore eureka-client-trust.jks

最后將服務(wù)端與客戶端的公鑰證書(shū)導(dǎo)入到彼此的truststore中:

keytool -import -alias eureka-client-file eureka-client.cer -keystore eureka-server-trust.jks
keytool -import -alias eureka-server-file eureka-server.cer -keystore eureka-client-trust.jks

至此ssl需要的證書(shū)我們就生成好了。

配置ssl服務(wù)發(fā)現(xiàn)中心

構(gòu)建ssl服務(wù)發(fā)現(xiàn)中心與平常的服務(wù)發(fā)現(xiàn)中心沒(méi)有什么區(qū)別,只是會(huì)在你的配置文件中添加幾項(xiàng)配置。
首先將生成的eureka-server.jks與eureka-server-trust.jks主在resources目錄。然后在application.yml文件中做如下配置:

server: port: ${PORT:8443} ssl: enabled: true key-store: classpath:eureka-server.jks key-store-password: 你設(shè)置的密碼 trust-store: classpath:eureka-server-trust.jks trust-store-password:你設(shè)置的密碼 key-alias: eureka-server eureka: instance: #根據(jù)需要,如果只使用ssl可設(shè)置為false non-secure-port-enabled: true non-secure-port: 8080 secure-port-enabled: true secure-port: ${server.port} client: register-with-eureka: false fetch-registry: false service-url: #localhost需要修改為你證書(shū)中配置的地址 defaultZone: 'https://localhost:${server.port}/eureka/' 

如果你和我一樣,啟用了non-secure-port-enabled=true,即服務(wù)注冊(cè)中心可以同時(shí)支持http與https注冊(cè),那還需要將non-secure-port添加到端口監(jiān)聽(tīng):

 @Value("${eureka.instance.non-secure-port}") privateStringnoSecurePort; @Bean publicIntegerport(){ return Integer.parseInt(noSecurePort); } @Bean publicEmbeddedServletContainerFactory servletContainer(){ TomcatEmbeddedServletContainerFactory tomcat=newTomcatEmbeddedServletContainerFactory(); tomcat.addAdditionalTomcatConnectors(createStandardConnector()); return tomcat; } privateConnector createStandardConnector(){ Connector connector=newConnector("org.apache.coyote.http11.Http11NioProtocol"); connector.setPort(port()); return connector; }

現(xiàn)在一個(gè)支持ssl的服務(wù)發(fā)現(xiàn)中心就配置好了,我的這個(gè)服務(wù)發(fā)現(xiàn)中心還同時(shí)支持http注冊(cè)。在瀏覽器中訪問(wèn)一下服務(wù)發(fā)現(xiàn)中心的兩個(gè)端口,都可以正常訪問(wèn)。

配置ssl客戶端

首先構(gòu)建一個(gè)正常的Spring Cloud客戶端應(yīng)用。也需要和配置服務(wù)發(fā)現(xiàn)中心一樣,導(dǎo)入證書(shū)密鑰庫(kù)。但這一步不太容易。因?yàn)镾pringCloud 并沒(méi)提供將證書(shū)密鑰庫(kù)傳遞給Eureka Client的方法。好在Eureka是使用Jersey實(shí)現(xiàn)服務(wù)端與客戶端之間的建立,并不是Spring RestTemplate。Spring Cloud Eureka是建立在Netflix OSS Eureka客戶端之上的,它不使用Spring庫(kù)。所以我們可以像配置Jersey SSL的方式來(lái)配置密鑰庫(kù)。但我們發(fā)現(xiàn),即使我們這樣配置好,在連接到服務(wù)注冊(cè)中心的SSL端口時(shí),Eureka Client同樣沒(méi)有使用ssl協(xié)議。這是因?yàn)椋瑢?duì)于像配置ssl這樣的一些高級(jí)配置,直接靠配置文件是無(wú)法配置的,我們需要?jiǎng)?chuàng)建一個(gè)DiscoveryClientOptionalArgs的Bean來(lái)配置。我將通過(guò)以下代碼片斷為大家演示如何為發(fā)現(xiàn)客戶端啟用SSL連接。

首先,我們使用javax.net.ssl.* Java系統(tǒng)屬性設(shè)置密鑰庫(kù)和信任庫(kù)文件的位置。然后,我們基于Java SSL設(shè)置提供Jersey客戶端的自定義實(shí)現(xiàn),并為DiscoveryClientOptionalArgs bean設(shè)置它。

@Configuration publicclassEurekaSslConfig{ @Value("${eureka.client.service-url.defaultZone}") privateStringdefaultZone; @Bean publicDiscoveryClient.DiscoveryClientOptionalArgs discoveryClientOptionalArgs(){ DiscoveryClient.DiscoveryClientOptionalArgs args=newDiscoveryClient.DiscoveryClientOptionalArgs(); System.setProperty("javax.net.ssl.keyStore","src/main/resources/eureka-client.jks"); System.setProperty("javax.net.ssl.keyStorePassword","你的密碼"); System.setProperty("javax.net.ssl.trustStore","src/main/resources/eureka-client-trust.jks"); System.setProperty("javax.net.ssl.trustStorePassword","你的密碼"); EurekaJerseyClientImpl.EurekaJerseyClientBuilder builder=newEurekaJerseyClientImpl.EurekaJerseyClientBuilder(); builder.withClientName("eureka-client"); if(defaultZone.startsWith("https://")){ builder.withSystemSSLConfiguration(); } builder.withMaxTotalConnections(10); builder.withMaxConnectionsPerHost(10); args.setEurekaJerseyClient(builder.build()); return args; } } 

配置application.yml:

eureka: client: service-url: defaultZone:'https://localhost:8443/eureka/' 

啟動(dòng)服務(wù)端與客戶端,查看發(fā)現(xiàn)中心頁(yè)面,一切正常。將defaultZone配置成http端口的訪問(wèn),也同樣正常注冊(cè)到服務(wù)發(fā)現(xiàn)中心。

總結(jié)

配置Eureka的SSL主要是在客戶端配置密鑰庫(kù)那一步,通過(guò)正常的Spring Cloud的配置方式無(wú)法配置密鑰庫(kù)。


本頁(yè)內(nèi)容由塔燈網(wǎng)絡(luò)科技有限公司通過(guò)網(wǎng)絡(luò)收集編輯所得,所有資料僅供用戶學(xué)習(xí)參考,本站不擁有所有權(quán),如您認(rèn)為本網(wǎng)頁(yè)中由涉嫌抄襲的內(nèi)容,請(qǐng)及時(shí)與我們聯(lián)系,并提供相關(guān)證據(jù),工作人員會(huì)在5工作日內(nèi)聯(lián)系您,一經(jīng)查實(shí),本站立刻刪除侵權(quán)內(nèi)容。本文鏈接:http://www.junxiaosheng.cn/20422.html
相關(guān)開(kāi)發(fā)語(yǔ)言
 八年  行業(yè)經(jīng)驗(yàn)

多一份參考,總有益處

聯(lián)系深圳網(wǎng)站公司塔燈網(wǎng)絡(luò),免費(fèi)獲得網(wǎng)站建設(shè)方案及報(bào)價(jià)

咨詢(xún)相關(guān)問(wèn)題或預(yù)約面談,可以通過(guò)以下方式與我們聯(lián)系

業(yè)務(wù)熱線:余經(jīng)理:13699882642

Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.    

主站蜘蛛池模板: 日韩爽爽影院在线播放| 久久视热频国产这里只有精品23| 寂寞夜晚在线视频观看| 美女厕所撒尿ass| 日韩专区亚洲国产精品| 伊人久久精品中文字幕| japonensis护士| 国产性夜夜性夜夜爽91| 男人J桶进男人屁股过程| 亚洲91av| www.伊人网| 久久亚洲AV无码精品午色夜麻豆| 日本黄色官网| 116美女写真午夜电影z| 国产精品久久久久无码AV色戒| 暖暖直播免费观看韩国| 一级毛片视频免费| 国产伦精品一区二区三区精品| 暖暖 免费 日本 高清 在线1| 亚洲色欲国产AV精品综合| 高清国产mv视频在线观看| 欧美18videosex性欧美老师| 一品道门在线视频| 国产在线视频在线观看| 肉色欧美久久久久久久蜜桃| a级毛片高清免费视频| 蜜桃传媒一区二区亚洲AV| 永久免费的污视频网站| 精品欧美一区二区三区四区| 性肥胖BWBWBW| 国产香蕉视频在线观看| 无码天堂亚洲内射精品课堂| 大桥未久电影在线观看| 人妻少妇69式99偷拍| 扒开 浓密 毛| 全免费a级毛片免费看| 超碰人人澡人人胔| 亲伦在线观看| 粉嫩无套白浆第一次jk| 无码AV免费精品一区二区三区| 国产国产成年在线视频区|