尚学堂112天总结+分布式配置中心

2019-12-13  本文已影响0人  人间草木为伴

112天
行百里者半九十,想要在一个行业里成为顶尖人才,一定满足一万小时定律,要想学好JAVA,需要持之以恒不断地努力,每天都要勤思考+善于询问+解决问题!

知识温故而知新>>>>>>

第一步:为服务器生成证书

打开CMD命令行工具,cd到C盘根目录或者是jdk的bin目录下,命令

cd "C:\Program Files\Java\jdk1.8.0_91\bin"

如下图所示:

image.png

使用keytool命令生成证书,下面是参数解析:

keytool 

-genkey 

-alias tomcat(别名) 

-keypass 123456(别名密码) 

-keyalg RSA(算法) 

-keysize 1024(密钥长度) 

-validity 365(有效期,天单位) 

-keystore D:/keys/tomcat.keystore(指定生成证书的位置和证书名称) 

-storepass 123456(获取keystore信息的密码)

命令如下:

./keytool -genkey -alias config -keypass 123456 -keyalg RSA -keysize 1024 -validity 365 -keystore D:/keys/config.keystore -storepass 123456

图例:“名字与姓氏”应该是域名,若输成了姓名,和真正运行的时候域名不符,会出问题;

image

回车执行后如下图:

image

点击回车即可在D:/keys/文件夹内生成名为:config.keystore的文件。成功后无提示信息

注意:

①D:/keys/ 目录需要提前手动创建好,否则会生成失败
问题①的错误信息如下:

image

②提示输入域名的时候不能输入IP地址

附录1:

keytool常用命令的含义

-alias       产生别名 

-keystore    指定密钥库的名称(就像数据库一样的证书库,可以有很多个证书,cacerts这个文件是jre自带的, 
你也可以使用其它文件名字,如果没有这个文件名字,它会创建这样一个) 

-storepass   指定密钥库的密码 

-keypass     指定别名条目的密码 

-list        显示密钥库中的证书信息 

-v           显示密钥库中的证书详细信息 

-export      将别名指定的证书导出到文件 

-file        参数指定导出到文件的文件名 

-delete      删除密钥库中某条目 

-import      将已签名数字证书导入密钥库 

-keypasswd   修改密钥库中指定条目口令 

-dname       指定证书拥有者信息 

-keyalg      指定密钥的算法 

-validity    指定创建的证书有效期多少天 

-keysize     指定密钥长度 

使用说明:

导入一个证书命令可以如下:

./keytool -import -keystore cacerts -storepass 666666 -keypass 888888 -alias alibabacert -file C:\alibabajava\cert\test_root.cer 

其中-keystore cacerts中的cacerts是jre中默认的证书库名字,也可以使用其它名字

-storepass 666666中的666666是这个证书库的密码

-keypass 888888中的888888是这个特定证书的密码

-alias alibabacert中的alibabacert是你导入证书的别名,在其它操作命令中就可以使用它

-file C:\alibabajava\cert\test_root.cer中的文件路径就是要导入证书的路径

浏览证书库里面的证书信息,可以使用如下命令:

./keytool -list -v -alias alibabacert -keystore cacerts -storepass 666666 

要删除证书库里面的某个证书,可以使用如下命令:

./keytool -delete -alias alibabacert -keystore cacerts -storepass 666666 

要导出证书库里面的某个证书,可以使用如下命令:

./keytool -export -keystore cacerts -storepass 666666 -alias alibabacert -file F:\alibabacert_root.cer 

要修改某个证书的密码(注意:有些数字认证没有私有密码,只有公匙,这种情况此命令无效)
这个是交互式的,在输入命令后,会要求你输入密码

./keytool -keypasswd -alias alibabacert -keystore cacerts 

这个不是交互式的,输入命令后直接更改

./Keytool -keypasswd -alias alibabacert -keypass 888888 -new 123456 -storepass 666666 -keystore cacerts

今天学到的知识>>>>>>

对称加密

image.png
image.png

非对称加密

image.png

使用对称加密算法,实现敏感数据加密

1修改 pom 文件

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>com.bjsxt</groupId> 
<artifactId>config-server-encryption-sym</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>jar</packaging> 
<name>springcloud-eureka-consumer</name> 
<description>Demo project for Spring Boot</description> <parent> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-parent</artifactId> <version>1.5.13.RELEASE</version> 
<relativePath /> <!-- lookup parent from repository --> </parent> 
<properties> 
<project.build.sourceEncoding>UTF-8</project.build.sourceEn coding> 
<project.reporting.outputEncoding>UTF-8</project.reporting. outputEncoding> 
<java.version>1.8</java.version> 
</properties> 
<dependencyManagement> 
<dependencies> 
<dependency> 
<groupId>org.springframework.cloud</groupId> 
<artifactId>spring-cloud-dependencies</artifactId> 
<version>Dalston.SR5</version> 
<type>pom</type> 
<scope>import</scope> 
</dependency> 
</dependencies> 
</dependencyManagement> 
<dependencies> 
<dependency> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-web</artifactId> </dependency> 
<dependency> 
<groupId>org.springframework.cloud</groupId> 
<artifactId>spring-cloud-starter-eureka</artifactId> 
</dependency> 
<dependency> 
<groupId>org.springframework.cloud</groupId> 
<artifactId>spring-cloud-config-server</artifactId> 
</dependency> 
</dependencies> 
<build> 
<plugins> 
<plugin> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-maven-plugin</artifactId> 
</plugin> 
</plugins> 
</build> 
</project>

2修改配置文件

spring.application.name=config-server-encryption-sym server.port=9050 
#设置服务注册中心地址,指向另一个注册中心 
eureka.client.serviceUrl.defaultZone=http://user:123456@eur eka1:8761/eureka/,http://user:123456@eureka2:8761/eureka/ 
#Git 配置 
spring.cloud.config.server.git.uri=https://gitee.com/oldlu_ wk/config 
#spring.cloud.config.server.git.username= 
#spring.cloud.config.server.git.password= 
#配置密钥 
encrypt.key=oldlu

使用非对称加密算法,实现敏感数据加密

1,修改 pom 文件

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>com.bjsxt</groupId> 
<artifactId>config-server-rsa</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>jar</packaging> 
<name>springcloud-eureka-consumer</name> 
<description>Demo project for Spring Boot</description> <parent> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-parent</artifactId> <version>1.5.13.RELEASE</version> 
<relativePath /> <!-- lookup parent from repository --> </parent> 
<properties> 
<project.build.sourceEncoding>UTF-8</project.build.sourceEn coding> 
<project.reporting.outputEncoding>UTF-8</project.reporting. outputEncoding> 
<java.version>1.8</java.version> 
</properties> 
<dependencyManagement> 
<dependencies> 
<dependency> 
<groupId>org.springframework.cloud</groupId> 
<artifactId>spring-cloud-dependencies</artifactId> 
<version>Dalston.SR1</version> 
<type>pom</type> 
<scope>import</scope> 
</dependency> 
</dependencies> 
</dependencyManagement> 
<dependencies> 
<dependency> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-web</artifactId> </dependency> 
<dependency> 
<groupId>org.springframework.cloud</groupId> 
<artifactId>spring-cloud-starter-eureka</artifactId> 
</dependency> 
<dependency> 
<groupId>org.springframework.cloud</groupId> 
<artifactId>spring-cloud-config-server</artifactId> 
</dependency> 
</dependencies> 
<build> 
<plugins> 
<plugin> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-maven-plugin</artifactId> 
</plugin> 
</plugins> </build> 
</project> 

2,修改配置文件

spring.application.name=config-server-rsa 
server.port=9050 
#设置服务注册中心地址,指向另一个注册中心 
eureka.client.serviceUrl.defaultZone=http://user:123456@eur eka1:8761/eureka/,http://user:123456@eureka2:8761/eureka/ 
#Git 配置 
spring.cloud.config.server.git.uri=https://gitee.com/oldlu_ wk/config 
#spring.cloud.config.server.git.username= 
#spring.cloud.config.server.git.password= 
#keytool -genkeypair -alias "config-info" -keyalg "RSA" 
-keystore "encrypt-info.keystore"  
# keystore 文件的路径 
encrypt.key-store.location=classpath:encrypt-info.keystore # alias 指定密钥对的别名,该别名是公开的; 
encrypt.key-store.alias=config-info 
# storepass 密钥仓库 
encrypt.key-store.password=oldlu123 
# keypass 用来保护所生成密钥对中的私钥 
encrypt.key-store.secret=oldlu456 

通过 keytool 工具创建密钥文件

1,修改 pom 文件

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>com.bjsxt</groupId> 
<artifactId>config-product-provider-rsa</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<parent> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-parent</artifactId> <version>1.5.13.RELEASE</version> 
<relativePath /> <!-- lookup parent from repository --> </parent> 
<properties> 
<project.build.sourceEncoding>UTF-8</project.build.sourceEn coding> 
<project.reporting.outputEncoding>UTF-8</project.reporting. outputEncoding> 
<java.version>1.8</java.version> 
</properties> 
<dependencyManagement> 
<dependencies> 
<dependency> 
<groupId>org.springframework.cloud</groupId> 
<artifactId>spring-cloud-dependencies</artifactId> 
<version>Dalston.SR5</version> 
<type>pom</type> 
<scope>import</scope> 
</dependency> 
</dependencies> 
</dependencyManagement> 
<dependencies> 
<dependency> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-web</artifactId> </dependency> 
<dependency> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-starter-test</artifactId> 
<scope>test</scope> 
</dependency> 
<dependency> 
<groupId>org.springframework.cloud</groupId> 
<artifactId>spring-cloud-starter-eureka</artifactId> 
</dependency> 
<!-- 添加  product-service坐标    --> 
<dependency> 
<groupId>com.bjsxt</groupId> 
<artifactId>e-book-product-service</artifactId> <version>0.0.1-SNAPSHOT</version> 
</dependency> 
<dependency> 
<groupId>org.mybatis.spring.boot</groupId> 
<artifactId>mybatis-spring-boot-starter</artifactId> 
<version>1.3.0</version> 
</dependency> 
<dependency> 
<groupId>mysql</groupId> 
<artifactId>mysql-connector-java</artifactId> </dependency> 
<dependency> 
<groupId>org.springframework.cloud</groupId> 
<artifactId>spring-cloud-starter-config</artifactId> 
</dependency> 
</dependencies> 
<build> 
<plugins> 
<plugin> 
<groupId>org.springframework.boot</groupId> 
<artifactId>spring-boot-maven-plugin</artifactId> 
</plugin> 
</plugins> 
</build> 
</project> 

2,修改配置文件

spring.application.name=config-product-provider-rsa
server.port=9001 
#设置服务注册中心地址,指向另一个注册中心 
eureka.client.serviceUrl.defaultZone=http://user:123456@eur eka1:8761/eureka/,http://user:123456@eureka2:8761/eureka/
#配置中心服务端的链接信息 
#默认  false,这里设置  true,表示开启读取配置中心的配置 
spring.cloud.config.discovery.enabled=true 
#对应  eureka中的配置中心  serviceId,默认是  configserver spring.cloud.config.discovery.serviceId=config-server-rsa #git 标签 
spring.cloud.config.label=master 

3使用 httpUtilClient 工具生成加密信息, 使用 httpUtilClient 工具生成加密信息
4在 git 的远程仓库中创建配置文件

config-product-provider-rsa.properties 
#--------------db---------------- 
mybatis.type-aliases-package=com.book.product.pojo 
mybatis.mapper-locations=classpath:com/book/product/mapper/*.xml 
spring.datasource.driverClassName=com.mysql.jdbc.Driver 
spring.datasource.url=jdbc:mysql://localhost:3306/book-product?useUnicode=true&c
haracterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull 
spring.datasource.username={cipher}AQBdUaIQc5dxL6Px2qQ9cs8DHJ9EkUD2VaAEaGrxiK5y2 RKsOJtwL8YozHVeW8bY+A5tdkYNp0wJDYWlCASu2/aNLfSUmzk4yyOKZAUMhrDLcFasRDXQCFE3Eq7JqjPu 2hl1AeplZAxl61xFvaJPKzve5/5lXN/gfxT7q41pahb1rzpkZEpqmRAn4+aLfrbamFnYgU/f9s1AsRoRTVr jzxBPe98+VtSbyNAujU8eIf+3ZEVYwDOHOEhFxNUERSBHk/CPrbCBjoU7AygqKC6/dmexwuX/KxQpXUYzh7 1JPlVhW7LDgCuMs2W//nHdoWSlGmmOy6UZqxzlmg29ktdiRbJJ+LbY6ToDosAe9tfG9cWa1lj9odBwP1bea 7VdqK1w4jM= 
spring.datasource.password={cipher}AQBdUaIQc5dxL6Px2qQ9cs8DHJ9EkUD2VaAEaGrxiK5y2 RKsOJtwL8YozHVeW8bY+A5tdkYNp0wJDYWlCASu2/aNLfSUmzk4yyOKZAUMhrDLcFasRDXQCFE3Eq7JqjPu 2hl1AeplZAxl61xFvaJPKzve5/5lXN/gfxT7q41pahb1rzpkZEpqmRAn4+aLfrbamFnYgU/f9s1AsRoRTVr jzxBPe98+VtSbyNAujU8eIf+3ZEVYwDOHOEhFxNUERSBHk/CPrbCBjoU7AygqKC6/dmexwuX/KxQpXUYzh7 1JPlVhW7LDgCuMs2W//nHdoWSlGmmOy6UZqxzlmg29ktdiRbJJ+LbY6ToDosAe9tfG9cWa1lj9odBwP1bea 7VdqK1w4jM= 

习题的情况总结>>>>>>

上一篇下一篇

猜你喜欢

热点阅读