一、nacos支持加密和https
alibaba/nacos下载和部署(包含加密和https)
二、springboot nacos解密支持
添加步骤一中nacos中相同的加密插件
<dependency>
<groupId>com.alibaba.nacos</groupId>
<artifactId>nacos-aes-encryption-plugin</artifactId>
<version>${revision}</version>
</dependency>
nacos的配置文件名改成cipher-aes-*的格式,然后发布(一定要发布)。
加密验证方式:克隆一个已加密的配置,命名删除“cipher-aes-”,然后直接打开,查看内容是否是密文。
三、springboot nacos https支持
3.1 方式一,原生nacos-client(版本<=2.2.0)
证书制作是关键,我就是简单弄了下,发现证书校验不过,所以就放弃了,但是可以参考
https://blog.csdn.net/qq_32238611/article/details/126888182
3.2 方式二,修改nacos(版本<=2.2.0)
开启ssl
System.setProperty("tls.enable", "true");
SpringApplication.run(...)
或者启动的时候加上
-Dtls.enable=true
然后nacos的地址要改成https://地址
到此其实已经开启完毕https了,但是老是失败,查看错误信息关键是证书校验不过,所以信任所有证书即可
修改nacos-client的源码(注意下载对应版本)
git clone https://github.com/alibaba/nacos.git
git checkout tag名称(版本)
添加一个证书校验类
public class TrustAnyHostnameVerifierimplements HostnameVerifier {
public boolean verify(String hostname, SSLSession session) {
return true;
}
}
替换AbstractHttpClientFactory.java原有的校验
final HostnameVerifier hv = HttpsURLConnection.getDefaultHostnameVerifier();
替换成
final HostnameVerifier hv =new TrustAnyHostnameVerifier();
本地编译(可修改版本名称)
mvn clean install -DskipTests -Drat.skip=true -P release-nacos
使用本地编译的nacos-client即可