有小伙伴反应上一篇分布式加密配置,有小伙伴加密报错,我查了一下原因和jdk 版本相关,先贴报错日志:
1、调用加密接口时http://localhost:8085/encrypt/status 报错的核心日志:
java.security.InvalidKeyException: Illegal key size
2、原因是jdk里的jar包 问题
DK8的下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html
下载后解压,可以看到local_policy.jar和US_export_policy.jar以及readme.txt
切换到D:\Program Files\Java\jre1.8.0_25\lib\security和D:\Program Files\Java\jdk1.8.0_25\jre\lib\security目录下,对应覆盖local_policy.jar和US_export_policy.jar两个文件。
配置权限文件的最终目的是为了使应用在运行环境中获得相应的权限,可以加强应用的安全性。通常,我们在应用服务器上安装的是JRE,而不是JDK。因此,这就很有必要在应用服务器的两个目录下,对应覆盖这两个权限文件。很多开发人员往往忽略了这一点,导致问题发生.
3、覆盖后重启jdk和服务,访问浏览器:http://localhost:8085/encrypt/status
postman 调用加密接口:
4、提前准备好的配置如下:
A:pom.xml 文件:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-config-server</artifactId>
</dependency>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
<excludes>
<exclude>**/*.jks</exclude>
</excludes>
</resource>
<resource>
<directory>src/main/resources</directory>
<filtering>false</filtering>
<includes>
<include>**/*.jks</include>
</includes>
</resource>
</resources>
B:bootstrap.yml中 的相关部分配置:
encrypt:
key-store:
location: classpath:/config-service.jks
alias: nandaoconfig
password: 123456
secret: 123456
C:cmd中D:\Program Files\Java\jdk1.8.0_25\jre\bin 目录下 执行:
keytool -genkeypair -alias nandaoconfig -keyalg RSA -dname "CN=Web Server,OU=China,O=www.howardliu.cn,L=Beijing,S=Beijing,
C=China" -keypass 123456 -keystore config-service.jks -storepass 123456
D:生成的 config-service.jks 文件复制到 服务的resources 下
演示成功!不明白的小伙伴留言!!!!