性久久久久久,性色av浪潮av色欲av,国产日韩精品在线观看,亚洲色成人网一二三区

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

網(wǎng)站百科

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

Spring Eureka 配置 SSL

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

前言

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

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

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

創(chuàng)建證書

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

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

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

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

這里會要求你輸入上一步你設(shè)置的密碼,執(zhí)行成功后會提示 存儲在文件 eureka-server.cer中的證書。然后把公鑰證書導(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ù)端與客戶端的公鑰證書導(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需要的證書我們就生成好了。

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

構(gòu)建ssl服務(wù)發(fā)現(xiàn)中心與平常的服務(wù)發(fā)現(xiàn)中心沒有什么區(qū)別,只是會在你的配置文件中添加幾項(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需要修改為你證書中配置的地址 defaultZone: 'https://localhost:${server.port}/eureka/' 

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

 @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)在一個支持ssl的服務(wù)發(fā)現(xiàn)中心就配置好了,我的這個服務(wù)發(fā)現(xiàn)中心還同時支持http注冊。在瀏覽器中訪問一下服務(wù)發(fā)現(xiàn)中心的兩個端口,都可以正常訪問。

配置ssl客戶端

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

首先,我們使用javax.net.ssl.* Java系統(tǒng)屬性設(shè)置密鑰庫和信任庫文件的位置。然后,我們基于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/' 

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

總結(jié)

配置Eureka的SSL主要是在客戶端配置密鑰庫那一步,通過正常的Spring Cloud的配置方式無法配置密鑰庫。


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

多一份參考,總有益處

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

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

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

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