java通过证书访问etcd的实现步骤
一、首先,要使用cfssl生成etcd证书相关的文件(ca.pem server.pem server-key.pem ),然后把server-key.pem进行转换:
二、带证书启动etcd
1 | ./etcd --name infra0 --cert-file=/root/server.pem --key-file=/root/server-key.pem --advertise-client-urls=https://0.0.0.0:2379 --listen-client-urls=https://0.0.0.0:2379 |
可通过etcdctl 进行连接验证
1 | ./etcdctl --cacert=/root/ca.pem --cert=/root/server.pem --key=/root/server-key.pem --endpoints="https://10.180.23.10:2379" get Elon |
三、在java项目中添加相关依赖,完整依赖类似如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 | <? 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 >org.example</ groupId > < artifactId >springbootetcd3</ artifactId > < version >1.0-SNAPSHOT</ version > < properties > < maven.compiler.source >8</ maven.compiler.source > < maven.compiler.target >8</ maven.compiler.target > </ properties > < parent > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-parent</ artifactId > < version >2.6.6</ version > < relativePath /> <!-- lookup parent from repository --> </ parent > < dependencies > < dependency > < groupId >io.etcd</ groupId > < artifactId >jetcd-core</ artifactId > < version >0.7.7</ version > </ dependency > <!-- https://mvnrepository.com/artifact/com.coreos/jetcd-core --> <!-- <dependency> <groupId>com.coreos</groupId> <artifactId>jetcd-core</artifactId> <version>0.0.2</version> </dependency>--> <!-- <dependency> <groupId>io.etcd</groupId> <artifactId>jetcd-core</artifactId> <version>0.5.0</version> </dependency>--> <!-- <dependency> <groupId>io.grpc</groupId> <artifactId>grpc-netty-shaded</artifactId> <version>1.50.0</version> </dependency>--> <!-- https://mvnrepository.com/artifact/io.netty/netty-all --> < dependency > < groupId >io.netty</ groupId > < artifactId >netty-all</ artifactId > < version >4.1.90.Final</ version > </ dependency > <!-- https://mvnrepository.com/artifact/io.netty/netty-tcnative --> < dependency > < groupId >io.netty</ groupId > < artifactId >netty-tcnative</ artifactId > < version >2.0.65.Final</ version > </ dependency > <!-- https://mvnrepository.com/artifact/io.netty/netty-tcnative-boringssl-static --> < dependency > < groupId >io.netty</ groupId > < artifactId >netty-tcnative-boringssl-static</ artifactId > < version >2.0.65.Final</ version > </ dependency > < dependency > < groupId >org.springframework.boot</ groupId > < artifactId >spring-boot-starter-web</ artifactId > </ dependency > </ dependencies > </ project > |
四、创建客户端,访问etcd
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | package cn.edu.tju; import io.etcd.jetcd.ByteSequence; import io.etcd.jetcd.Client; import io.etcd.jetcd.KV; import io.etcd.jetcd.api.PutResponse; import io.grpc.netty.GrpcSslContexts; import io.netty.handler.ssl.SslContext; import java.io.File; import java.io.IOException; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ExecutionException; public class EtcdExample { public static void main(String[] args) throws IOException, ExecutionException, InterruptedException { File cert = new File( "d:\\ca.pem" ); File keyCertChainFile = new File( "d:\\server.pem" ); File keyFile = new File( "d:\\server.key" ); SslContext context = GrpcSslContexts.forClient() .trustManager(cert) .keyManager(keyCertChainFile, keyFile) .build(); Client client = Client.builder() .endpoints( "https://xx.xx.xx.xx:2379" ) .sslContext(context) .build(); ByteSequence key = ByteSequence.from( "Elon" .getBytes()); ByteSequence value = ByteSequence.from( "Musk" .getBytes()); // put the key-value client.getKVClient().put(key,value).get(); System.out.println( "ok" ); } } |
到此这篇关于java通过证书访问etcd的实现步骤的文章就介绍到这了,更多相关java 证书访问etcd内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
微信公众号搜索 “ 脚本之家 ” ,选择关注
程序猿的那些事、送书等活动等着你
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权/违法违规/事实不符,请将相关资料发送至 reterry123@163.com 进行投诉反馈,一经查实,立即处理!
相关文章
Java异常:java.net.UnknownHostException产生的原因和解决方案
这篇文章主要给大家介绍了关于Java异常:java.net.UnknownHostException产生的原因和解决方案,这个异常是java.net包中的一部分,具体说它是类的一个实例,异常通常是由主机名无法解析为IP地址引起的,文中将解决的办法介绍的非常详细,需要的朋友可以参考下2024-01-01jboss( WildFly)上运行 springboot程序的步骤详解
这篇文章主要介绍了jboss( WildFly)上运行 springboot程序的步骤详解,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-02-02Spring Boot右键maven build成功但是直接运行main方法出错的解决方案
这篇文章主要介绍了Spring Boot-右键maven build成功但是直接运行main方法出错的解决方案,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2019-08-08
最新评论