下面使用对称性加密来加密配置,为证书密钥需
分类:美高梅网上注册平台

打开tomcat/conf/server.xml配置文件,把下面这段配置注释取消掉,keystorePass为证书密钥需要手动添加,创建证书时指定的。

从配置获取的配置默认是明文的,有些像数据源这样的配置需要加密的话,需要对配置中心进行加密处理。

面试了一些人,简历上都说自己熟悉 Spring Boot, 或者说正在学习 Spring Boot,一问他们时,都只停留在简单的使用阶段,很多东西都不清楚,也让我对面试者大失所望。

<Connector port="8443" protocol="org.apache.coyote.http11.Http11Protocol" maxThreads="150" SSLEnabled="true" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" keystorePass="123456" />

下面使用对称性加密来加密配置,需要配置一个密钥,当然也可以使用RSA非对称性加密,但对称加密比较方便也够用了,这里就以对称加密来配置即可。

下面,我给大家总结下有哪些 Spring Boot 的面试题,这是我经常拿来问面试者的,希望对你有帮助。

使用jdk工具类里面的keytool命令来生成证书,按照提示输入相应的信息。

1、安装JCE

JDK下的JCR默认是有长度限制的,需要替换没有长度限制的JCE版本。

http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

把下载包里面的两个jar文件复制替换到JAVA_HOME/jre/lib/security目录下。

1、什么是 Spring Boot?

C:>keytool -genkey -alias https -keyalg RSA输入密钥库口令:您的名字与姓氏是什么? [Unknown]: test您的组织单位名称是什么? [Unknown]: test您的组织名称是什么? [Unknown]: test您所在的城市或区域名称是什么? [Unknown]: test您所在的省/市/自治区名称是什么? [Unknown]: test该单位的双字母国家/地区代码是什么? [Unknown]: testCN=test, OU=test, O=test, L=test, ST=test, C=test是否正确? [否]: y输入 <https> 的密钥口令 (如果和密钥库口令相同, 按回车):再次输入新口令:

2、添加加密KEY

配置中心配置文件中加入加密密钥。

encrypt: 
  key: 0e010e17-2529-4581-b907-c8edcfd6be09

Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。

这里的密钥口令就是配置文件中的keystorePass配置。

3、查看加密功能状态

http://192.168.1.237:7100/encrypt/status

功能正常会显示OK

{"status":"OK"}

更多 Spring Boot 详细介绍请看这篇文章《什么是Spring Boot?》。

通过https://localhost:8443/your-project就能访问https项目。

4、加密解密

develop字符串加密

curl http://192.168.1.237:7100/encrypt -d  develop -u config-user:99282424-5939-4b08-a40f-87b2cbc403f6

develop字符串解密

curl http://192.168.1.237:7100/decrypt -d  0fb593294187a31f35dea15e8bafaf77745328dcc20d6d6dd0dfa5ae753d6836 -u config-user:99282424-5939-4b08-a40f-87b2cbc403f6

-u username:password 为basic认证

2、为什么要用 Spring Boot?

这种方式只适合本地开启https测试,线上环境需要购买商业授权的证书,不过原理都是一样的。推荐阅读

5、配置文件

spring: 
  datasource: 
    username: '{cipher}0fb593294187a31f35dea15e8bafaf77745328dcc20d6d6dd0dfa5ae753d6836'

需要加密的内容以{cipher}开头,并注意要使节单引号包起来,不然报错。

Spring Boot 优点非常多,如:

什么是Spring Boot?Spring Boot开启的2种方式Spring Boot Starters启动器Spring Boot定制启动图案Spring Boot核心配置Spring Boot功能实战Spring Boot自动配置原理、实战Spring Boot Runner启动器Spring Boot - Profile不同环境配置

6、读取配置

这样客户端读取出来的配置是自动解密了的,如果要关闭自动解密功能通过客户端自己来解密,同时也要保留加解密的端点可以通过关闭以下配置即可。

spring.cloud.config.server.encrypt.enabled=false

推荐阅读

什么是Spring Boot?
Spring Boot开启的2种方式
Spring Boot Starters启动器
Spring Boot定制启动图案
Spring Boot核心配置
Spring Boot功能实战
Spring Boot自动配置原理、实战
Spring Boot Runner启动器
Spring Boot - Profile不同环境配置

看完有没有收获?分享到朋友圈给更多的人吧。

美高梅网上注册平台 1

  • 独立运行
  • 简化配置
  • 自动配置
  • 无代码生成和XML配置
  • 应用监控
  • 上手容易
  • ...

看完有没有收获?分享到朋友圈给更多的人吧。

Spring Boot 集这么多优点于一身,还有理由不使用它呢?

美高梅网上注册平台 2

3、Spring Boot 的核心配置文件有哪几个?它们的区别是什么?

Spring Boot 的核心配置文件是 application 和 bootstrap 配置文件。

application 配置文件这个容易理解,主要用于 Spring Boot 项目的自动化配置。

bootstrap 配置文件有以下几个应用场景。

  • 使用 Spring Cloud Config 配置中心时,这时需要在 bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;
  • 一些固定的不能被覆盖的属性;
  • 一些加密/解密的场景;

具体请看这篇文章《Spring Boot 核心配置文件详解》。

美高梅网上注册平台 ,4、Spring Boot 的配置文件有哪几种格式?它们有什么区别?

.properties 和 .yml,它们的区别主要是书写格式不同。

1).properties

app.user.name = javastack

2).yml

app:  user:    name: javastack

另外,.yml 格式不支持 @PropertySource 注解导入配置。

5、Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?

启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要组合包含了以下 3 个注解:

@SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。

@EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。

@ComponentScan:Spring组件扫描。

6、开启 Spring Boot 特性有哪几种方式?

本文由美高梅网上注册平台发布于美高梅网上注册平台,转载请注明出处:下面使用对称性加密来加密配置,为证书密钥需

上一篇:项目原则是降低给别人造成麻烦,对数据量和效 下一篇:没有了
猜你喜欢
热门排行
精彩图文