项目部署现场扫描到nacos漏洞,需要升级nacos版本并开启认证配置
首先原本安装的nacos版本为1.3.1,修改为直接拉取的最新版本镜像
然后docker 启动nacos
docker run -d --env PREFER_HOST_MODE=hostname --env MODE=standalone --env NACOS_AUTH_ENABLE=true -e prefer_host_mode=127.0.0.1 -e MODE=standalone -v /data/nacos/logs:/opt/software/nacos/logs -p 8848:8848 -p 9848:9848 -p 9849:9849 --name nacos_latest --restart=always nacos/nacos-server
其中【--env PREFER_HOST_MODE=hostname --env MODE=standalone --env NACOS_AUTH_ENABLE=true】为开启认证模式配置
然后因为nacos2.0以上需要有一个9848的通信端口访问,所以开放该端口
如果不开启会报下面的错误
可以看到这个报错是这个IP端口访问不通
而我这里的nacos端口为35932
可以看到,项目启动时会自动将配置的nacos端口加1000作为通信端口进行访问,(如果配置的nacos端口是8848那通信端口就是9848)
docker启动了最新版nacos后(我这时的nacos版本为2.1.1,亲测2.0.3也行)
在项目中的最上级pom文件中配置好这几个依赖
<parent>配置:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.3.5.RELEASE</version>
<relativePath/>
</parent>
<properties></properties>配置:
<properties>
<spring-cloud.version>Hoxton.SR4</spring-cloud.version>
<spring-cloud-alibaba.version>2.2.1.RELEASE</spring-cloud-alibaba.version>
<alibaba.nacos.version> 2.1.1</alibaba.nacos.version>
</properties>
然后依赖配置:
<!-- SpringCloud 微服务 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${spring-cloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- SpringCloud Alibaba 微服务 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-alibaba-dependencies</artifactId>
<version>${spring-cloud-alibaba.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<!-- Alibaba Nacos 配置 -->
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-client</artifactId>
<version>${alibaba.nacos.version}</version>
</dependency>
<!--服务注册发现-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>
<!--配置中心-->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
<version>2.2.1.RELEASE</version>
</dependency>
最后是bootstrap.yml进行认证配置
#--------------------------使用的开启了认证的nacos服务------------------------------
spring:
application:
name: cloudplatform-fileaccess-service
main:
allow-bean-deFinition-overriding: true
cloud:
nacos:
discovery:
namespace: public
username: nacos
password: nacos
server-addr: ${spring.cloud.nacos.server:192.168.0.109:8858}
group: ${spring.profiles.active:dev}
config:
username: nacos
password: nacos
file-extension: properties
group: ${spring.profiles.active:dev}
server-addr: ${spring.cloud.nacos.server:192.168.0.109:8858}
ext-config:
- data-id: MysqL-datasource.yml
group: ${spring.profiles.active:dev}
refresh: true
- data-id: redis-config.yml
group: ${spring.profiles.active:dev}
refresh: true
运行成功
ps:
其中部分错误解释
如果是
Error creating bean with name 'bootstrapImportSelectorConfiguration'这个错误,应该是spring-boot和springcloud版本冲突了,建议仔细检查各个pom文件里的依赖版本
原文地址:https://www.jb51.cc/wenti/3282994.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。