springboot项目,bootstrap.yml里配置nacos配置,开启鉴权,密码怎么加密?
在Spring Boot项目中,如果你要在bootstrap.yml
或者bootstrap.properties
文件中配置Nacos作为配置中心,并且Nacos开启了服务端的鉴权功能,你需要提供带有访问凭证(用户名和经过加密的密码)的Nacos配置。为了安全起见,可以使用Jasypt等工具来加密密码,避免明文存储。
以下是使用Jasypt对Nacos的访问密码进行加密并配置到bootstrap.yml
中的大致步骤:
添加Jasypt Spring Boot Starter依赖:
<dependency>
<groupId>com.github.ulisesbocchio</groupId>
<artifactId>jasypt-spring-boot-starter</artifactId>
<version>3.0.3</version> <!-- 根据最新版本调整 -->
</dependency>
在application.properties
或bootstrap.properties
中设置Jasypt的加密器密码(用于解密):
jasypt.encryptor.password=your_encryption_password
使用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
值。
在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 (如果有的话)
如果Nacos配置中心启用了SSL,还需要配置相应的SSL相关属性。
这样,当Spring Boot启动时,Jasypt会自动解密ENC()
包裹的加密密码,从而使得应用程序能够使用正确的凭据连接到Nacos配置中心。同时,由于加密密码不以明文形式存在,增加了安全性。请确保jasypt.encryptor.password
的安全保管,不要将其泄露。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。