美文网首页
尚学堂112天总结+分布式配置中心

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

作者: 人间草木为伴 | 来源:发表于2019-12-13 21:40 被阅读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= 
    

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

    相关文章

      网友评论

          本文标题:尚学堂112天总结+分布式配置中心

          本文链接:https://www.haomeiwen.com/subject/qrffnctx.html