Apollo单向SSL认证(1)
参考链接:https://www.cnblogs.com/benwu/articles/4891758.html
keytool -genkey -alias mybroker -keyalg RSA -keyStore mybroker.ks
keytool -export -alias mybroker -keyStore mybroker.ks -file mybroker.cert
keytool -import -alias mybroker -keystore mybroker.ts -file mybroker.cert
Apollo单向SSL认证
1.SSL协议
SSL协议有单向和双向之分。
单向认证流程图:
双向认证流程图:
单向和双向的主要区别是:
- 单向需要的是在broker上配置broker.ks,在客户端上配置client.ts,client每次建立SSL连接时会从服务端拿到证书并判断是否受信。
- 双向则需要在客户端配置client.ts和client.ks,服务端配置上broker.ks和broker.ts,通信时必须双方都认可才能建立通信。
如果使用单向认证,那么客户端建议仍然使用密码+client.ts的方式来登录broker,这样可以减少每个client上线时都需要配置broker.ts的工作量。
2. 证书生成步骤
证书生成步骤:
1、生成服务端私钥,并导入到服务端keyStore文件中,此操作生成broker1.ks文件,用于保存服务端私钥,仅供服务端使用。
在命令行输入:
keytool -genkey -alias broker -keyalg RSA -keyStore broker1.ks |
2、根据服务端私钥导出服务端证书,此操作生成broker_cert文件,该文件为服务端的证书。
在命令行输入:
keytool -export -alias broker -keyStore broker1.ks -file broker_cert |
3、导入服务端证书到客户端的密钥库Trust keyStore中。此操作生成client.ts文件,保存服务端证书,供客户端使用。
在命令行输入:
keytool -import -alias broker -keystore client1.ts -file broker_cert |
单向认证证书生成完成。
3. Apollo配置SSL
在Apollo服务端配置服务端证书broker1.ks。编辑Apollo配置文件apollo.xml,添加SSL证书配置,填写服务端证书broker1.ks文件地址和密钥:
<key_storage file="${apollo.base}/etc/broker1.ks" password="password" key_password="password"/> |
4. 模拟连接SSL
客户端使用MQTT.fx模拟,配置客户端,端口号使用tls端口61614,启用SSL,使用TLSv1.2,选择CA keystore验证,填写客户端证书client1.ts文件地址和密钥。
客户端连接broker成功。
Apollo单向SSL认证(1)的更多相关文章
- Apollo单向SSL认证(2)
一.生成ks和ts 二.连接测试 1.配置 2.测试
- Tomcat 实现双向SSL认证
大概思路: 使用openssl生产CA证书,使用keytool生产密钥库 实验环境:RHEL6.4+Tomcat8 一.生成CA根证书,并自签名 1.生成CA密钥 # genrsa [产生密钥命令] ...
- 使用 curl 进行 ssl 认证
目录 SSL 认证 认证实现 问题解决 curl不支持 https SSL certificate problem, verify that the CA cert is OK curl: (60) ...
- mosquitto SSL认证
[11]MQTT mosquitto 双向SSL认证配置方式 [12]MQTT mosquitto 单向SSL认证的配置方式 Mosquitto服务器的搭建以及SSL/TLS安全通信配置(比较可信) ...
- https 单向双向认证说明_数字证书, 数字签名, SSL(TLS) , SASL_转
转自:https 单向双向认证说明_数字证书, 数字签名, SSL(TLS) , SASL 因为项目中要用到TLS + SASL 来做安全认证层. 所以看了一些网上的资料, 这里做一个总结. 1. 首 ...
- SSL认证
SSL认证 单向认证 1.发一串消息个对方 2.对方用私钥加密后返回 3.本方用对方的公钥解密,验证消息是否正确, 如果消息相同,则本方认可对方 双向认证 本方认证对方 对方认证本方
- java中 SSL认证和keystore使用
java中 SSL认证和keystore使用 2013-10-12 11:08 10488人阅读 评论(0) 收藏 举报 目录(?)[+] 好久没用过SSL认证了,东西久不用,就有点生疏. ...
- RSA原理、ssl认证、Tomcat中配置数字证书以及网络传输数据中的密码学知识
情形一:接口的加.解密与加.验签 rsa不是只有加密解密,除此外还有加签和验签.之前一直误以为加密就是加签,解密就是验签.这是错误的! 正确的理解是: 数据传输的机密性:公钥加密私钥解密是密送,保 ...
- mysql多实例安装与ssl认证
mysql多实例安装有两种形式: 同一数据库版本的多实例安装. 不同数据库版本的多实例安装. 同一数据库的多实例安装: 在同一台机器上安装4台mysql数据库实例. 从官网下载MySQL5.6版本的二 ...
随机推荐
- js备战春招の四の表单
表单验证:required="required"(浏览器自动验证) javascript表单验证: <input id="numb">这条html标 ...
- Mac上使用jenkins+ant执行第一个程序
本文旨在让同学们明白如何让jenkis在mac笔记本上运行,以模拟实际工作中在linux上搭建jenkins服务平台首先按照笔者的习惯先说一下如何安装jenkis和tomcat,先安装tomcat,在 ...
- Python进程-实现
multiprocessing模块介绍 python中的多线程无法利用CPU资源,在python中大部分计算密集型任务使用多进程.如果想要充分地使用多核CPU的资源(os.cpu_count()查看) ...
- 数据库入门之运行原始 SQL 查找
数据库入门之运行原始 SQL 查找 一旦你设置好了数据库连接,就可以使用 DB facade 来进行查找.DB facade 提供每个类型的查找方法:select.update.insert.dele ...
- linux截取字符串之sort、uniq、cut用法
sort命令是帮我们依据不同的数据类型进行排序 参 数: -b 忽略每行前面开始出的空格字符. -c 检查文件是否已经按照顺序排序. -f 排序时,忽略大小写字母. -M 将前 ...
- 设计模式 --> MVC,MVP 和 MVVM 的图示
MVC,MVP 和 MVVM 的图示 复杂的软件必须有清晰合理的架构,否则无法开发和维护.MVC(Model-View-Controller)是最常见的软件架构之一,业界有着广泛应用. 一.MVC M ...
- [UWP]创建一个ProgressControl
1. 前言 博客园终于新增了UWP的分类,我来为这个分类贡献第一篇博客吧. UWP有很多问题,先不说生态的事情,表单.验证.输入.设计等等一堆基本问题缠身.但我觉得最应该首先解决的绝对是Blend,那 ...
- 数据库(Oracle)运维工作内容及常用脚本命令
1.系统资源状况:--内存及CPU资源 --linux,solaris,aix vmstat 5 --说明: 1)观察空闲内存的数量多少,以及空闲内存量是否稳定,如果不稳定就得想办法来 ...
- [转] 关于VS中区分debug与release,32位与64位编译的宏定义
在vs编程中,常常涉及到32位和64位程序的编译,怎么判断当前编译是32位编译还是64位编译?如何判断是debug下编译还是release下编译?因为之前用到,这里记录一下,省的忘了又要疯狂的goog ...
- 进程与fork()、wait()、exec函数组
进程与fork().wait().exec函数组 内容简介:本文将引入进程的基本概念:着重学习exec函数组.fork().wait()的用法:最后,我们将基于以上知识编写Linux shell作为练 ...