伍佰目录 短网址
  当前位置:海洋目录网 » 站长资讯 » 站长资讯 » 文章详细 订阅RssFeed

Eureka Server启用 https服务指北

来源:本站原创 浏览:89次 时间:2022-06-24

文章共 591字,阅读大约需要 2分钟,文尾有计时器可自行对时!


概   述

在前文《Eureka Server 开启Spring Security Basic认证》中已经给 Eureka Server 开启了最基本的鉴权措施,本文则让 HTTPS加持于 Eureka Server,让安全措施来的更彻底一点。

注: 本文首发于 作者公众号 CodeSheep ,可 长按 / 扫描 下面的 小心心 来订阅 ↓ ↓ ↓


证书准备

这里使用 JDK自带的 keytools 来创建证书

  • Server 端证书生成

keytool -genkeypair -alias server -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore codesheepserver.p12 -validity 3800

过程如下:

  • Client 端证书生成

keytool -genkeypair -alias client -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore codesheepclient.p12 -validity 3800

过程类似,就不再截图了

  • 分别导出 server端和 client端的 p12证书

keytool -export -alias server -file codesheepserver.crt --keystore codesheepserver.p12 会要求你输入密码

keytool -export -alias client -file codesheepclient.crt --keystore codesheepclient.p12

导出的证书在此:

  • 配置 Client端信任 Server端的证书

keytool -import -alias server -file codesheepserver.crt -keystore codesheepclient.p12

过程如下:

  • 配置 Server端信任 Client端的证书

keytool -import -alias client -file codesheepclient.crt -keystore codesheepserver.p12

过程与上面类似,也不截图展示了

证书文件准备妥当之后,接下来进行项目代码级别的配置


Eureka Server SSL配置

我们需要在 Eureka Server的 Spring Boot项目中的 application.yml配置文件里将上文中生成的证书配到项目中去,即下面这段配置中与 server.ssl相关的部分:

  1. server:

  2.  port: 1111

  3.  ssl:

  4.    enabled: true

  5.    key-store: classpath:codesheepserver.p12

  6.    key-store-password: codesheep.cn

  7.    key-store-type: PKCS12

  8.    key-alias: server


  9. eureka:

  10.  instance:

  11.    hostname: localhost

  12.    securePort: 1111

  13.    securePortEnabled: true

  14.    nonSecurePortEnabled: false

  15.  client:

  16.    registerWithEureka: false

  17.    fetchRegistry: false


Eureka Client SSL配置

类似地,我们也在 Eureka Client的 Spring Boot项目中的 application.yml配置文件里将上文中生成的证书配到项目中去:

  1. server:

  2.  port: 1112

  3. spring:

  4.  application:

  5.    name: eureka-client

  6. eureka:

  7.  client:

  8.    securePortEnabled: true

  9.    serviceUrl:

  10.      defaultZone: https://localhost:1111/eureka/

  11. ssl:

  12.  key-store: codesheepclient.p12

  13.  key-store-password: codesheep.cn

但注意此处的 ssl.key-store 和 ssl.key-store-password只是我们自定义的属性,我们需要结合自己编写的 ssl配置类 EurekaClientHttpsCfg来进行使用,代码如下:

  1. @Configuration

  2. public class EurekaClientHttpsCfg {


  3.    @Value("${ssl.key-store}")

  4.    String keyStoreFileName;


  5.    @Value("${ssl.key-store-password}")

  6.    String keyStorePassword;


  7.    @Bean

  8.    public DiscoveryClient.DiscoveryClientOptionalArgs discoveryClientOptionalArgs() throws CertificateException, NoSuchAlgorithmException, KeyStoreException, IOException, KeyManagementException {

  9.        EurekaJerseyClientImpl.EurekaJerseyClientBuilder builder = new EurekaJerseyClientImpl.EurekaJerseyClientBuilder();

  10.        builder.withClientName("eureka-client");

  11.        SSLContext sslContext = new SSLContextBuilder()

  12.                .loadTrustMaterial(

  13.                        this.getClass().getClassLoader().getResource(keyStoreFileName),keyStorePassword.toCharArray()

  14.                )

  15.                .build();

  16.        builder.withCustomSSL(sslContext);


  17.        builder.withMaxTotalConnections(10);

  18.        builder.withMaxConnectionsPerHost(10);


  19.        DiscoveryClient.DiscoveryClientOptionalArgs args = new DiscoveryClient.DiscoveryClientOptionalArgs();

  20.        args.setEurekaJerseyClient(builder.build());

  21.        return args;

  22.    }

  23. }



实验验证

  • 启动 Eureka Server,由于其开启了 https访问,因此浏览器以非 https方式访问时就不通了

浏览器必须以 https方式访问注册中心方可:

  • 启动 Eureka Client后,由于其已经加入了对 https的配置,因此可以验证通过并且注册到 Eureka Server注册中心:

如此一番实践下来,微服务注册中心的安全性就更进了一步。


后   记

由于能力有限,若有错误或者不当之处,还请大家批评指正,一起学习交流!

  •  个人网站:www.codesheep.cn (程序羊)

我的更多系列原创文章:

  ●  我的半年技术博客之路

  ●  利用K8S技术栈打造个人私有云系列连载文章

  ●  从一份配置清单详解Nginx服务器配置

  ●  Spring Boot Admin 2.0开箱体验

  ●  一文上手 Elasticsearch常用可视化管理工具

  ●  Docker容器可视化监控中心搭建

  ●  利用ELK搭建Docker容器化应用日志中心

  ●  RPC框架实践之:Google gRPC

  ●  一文详解 Linux系统常用监控工具


作者更多 务实、能看懂、可复现的 原创文章尽在公众号 CodeSheep,欢迎订阅 ⬇️⬇️⬇️


  推荐站点

  • At-lib分类目录At-lib分类目录

    At-lib网站分类目录汇集全国所有高质量网站,是中国权威的中文网站分类目录,给站长提供免费网址目录提交收录和推荐最新最全的优秀网站大全是名站导航之家

    www.at-lib.cn
  • 中国链接目录中国链接目录

    中国链接目录简称链接目录,是收录优秀网站和淘宝网店的网站分类目录,为您提供优质的网址导航服务,也是网店进行收录推广,站长免费推广网站、加快百度收录、增加友情链接和网站外链的平台。

    www.cnlink.org
  • 35目录网35目录网

    35目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向35目录推荐、提交优秀网站。

    www.35mulu.com
  • 就要爱网站目录就要爱网站目录

    就要爱网站目录,按主题和类别列出网站。所有提交的网站都经过人工审查,确保质量和无垃圾邮件的结果。

    www.912219.com
  • 伍佰目录伍佰目录

    伍佰网站目录免费收录各类优秀网站,全力打造互动式网站目录,提供网站分类目录检索,关键字搜索功能。欢迎您向伍佰目录推荐、提交优秀网站。

    www.wbwb.net