开发者社区 > 云原生 > 正文

springboot项目,bootstrap.yml里配置Nacos配置,开启鉴权,密码怎么加密?

springboot项目,bootstrap.yml里配置nacos配置,开启鉴权,密码怎么加密?

展开
收起
阿遇202411 2024-01-16 16:50:43 2042 1
2 条回答
写回答
取消 提交回答
  • 在Spring Boot项目中,如果你要在bootstrap.yml或者bootstrap.properties文件中配置Nacos作为配置中心,并且Nacos开启了服务端的鉴权功能,你需要提供带有访问凭证(用户名和经过加密的密码)的Nacos配置。为了安全起见,可以使用Jasypt等工具来加密密码,避免明文存储。

    以下是使用Jasypt对Nacos的访问密码进行加密并配置到bootstrap.yml中的大致步骤:

    1. 添加Jasypt Spring Boot Starter依赖:

      <dependency>
          <groupId>com.github.ulisesbocchio</groupId>
          <artifactId>jasypt-spring-boot-starter</artifactId>
          <version>3.0.3</version> <!-- 根据最新版本调整 -->
      </dependency>
      
    2. application.propertiesbootstrap.properties中设置Jasypt的加密器密码(用于解密):

      jasypt.encryptor.password=your_encryption_password
      
    3. 使用Jasypt提供的命令行工具或编程方式加密你的Nacos访问密码。

      命令行工具加密示例(假设你已经安装了Jasypt CLI工具):

      java -cp jasypt-1.9.3.jar org.jasypt.intf.cli.JasyptPBEStringEncryptionCLI input="your_plain_password" password=your_encryption_password algorithm=PBEWithMD5AndTripleDES
      

      这会输出一个加密后的字符串,替换下面bootstrap.yml中的nacos.password值。

    4. bootstrap.yml中配置加密后的Nacos访问凭据:

      spring:
        cloud:
          nacos:
            config:
              server-addr: your_nacos_server_address:port
              username: your_nacos_username
              password: ENC(your_encrypted_password)  # 替换这里的your_encrypted_password
              namespace: your_namespace (如果有的话)
      
    5. 如果Nacos配置中心启用了SSL,还需要配置相应的SSL相关属性。

    这样,当Spring Boot启动时,Jasypt会自动解密ENC()包裹的加密密码,从而使得应用程序能够使用正确的凭据连接到Nacos配置中心。同时,由于加密密码不以明文形式存在,增加了安全性。请确保jasypt.encryptor.password的安全保管,不要将其泄露。

    2024-01-22 11:01:19
    赞同 展开评论 打赏
  • 和nacos配合使用加解密。2a43b6ad8234c4fa6028280676d6b2b0.png
    。此回答整理自钉群“Nacos社区群4”。

    2024-01-17 05:16:39
    赞同 1 展开评论 打赏

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
workshop专场-微服务专场-开发者动手实践营-微服务-使用Nacos进行服务的动态发现和流量调度 立即下载
Nacos 启航,发布第一个版本, 云原生时代助力用户微服务平台建设 立即下载
量子加密通信技术 立即下载