参考链接: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)的更多相关文章

  1. Apollo单向SSL认证(2)

    一.生成ks和ts 二.连接测试 1.配置 2.测试

  2. Tomcat 实现双向SSL认证

    大概思路: 使用openssl生产CA证书,使用keytool生产密钥库 实验环境:RHEL6.4+Tomcat8 一.生成CA根证书,并自签名 1.生成CA密钥 # genrsa [产生密钥命令] ...

  3. 使用 curl 进行 ssl 认证

    目录 SSL 认证 认证实现 问题解决 curl不支持 https SSL certificate problem, verify that the CA cert is OK curl: (60) ...

  4. mosquitto SSL认证

    [11]MQTT mosquitto 双向SSL认证配置方式 [12]MQTT mosquitto 单向SSL认证的配置方式 Mosquitto服务器的搭建以及SSL/TLS安全通信配置(比较可信) ...

  5. https 单向双向认证说明_数字证书, 数字签名, SSL(TLS) , SASL_转

    转自:https 单向双向认证说明_数字证书, 数字签名, SSL(TLS) , SASL 因为项目中要用到TLS + SASL 来做安全认证层. 所以看了一些网上的资料, 这里做一个总结. 1. 首 ...

  6. SSL认证

    SSL认证 单向认证 1.发一串消息个对方 2.对方用私钥加密后返回 3.本方用对方的公钥解密,验证消息是否正确, 如果消息相同,则本方认可对方 双向认证 本方认证对方 对方认证本方

  7. java中 SSL认证和keystore使用

    java中 SSL认证和keystore使用 2013-10-12 11:08 10488人阅读 评论(0) 收藏 举报   目录(?)[+]     好久没用过SSL认证了,东西久不用,就有点生疏. ...

  8. RSA原理、ssl认证、Tomcat中配置数字证书以及网络传输数据中的密码学知识

      情形一:接口的加.解密与加.验签 rsa不是只有加密解密,除此外还有加签和验签.之前一直误以为加密就是加签,解密就是验签.这是错误的! 正确的理解是: 数据传输的机密性:公钥加密私钥解密是密送,保 ...

  9. mysql多实例安装与ssl认证

    mysql多实例安装有两种形式: 同一数据库版本的多实例安装. 不同数据库版本的多实例安装. 同一数据库的多实例安装: 在同一台机器上安装4台mysql数据库实例. 从官网下载MySQL5.6版本的二 ...

随机推荐

  1. JDBC存在的问题

    1.数据库连接频繁的创建和关闭,缺点是浪费数据库资源,影响操作效率. 设想:使用数据库连接池 2.sql语句是硬编码,如果需求变更需要修改sql,就需要修改java代码,需要重新编译,系统不易维护. ...

  2. DevExpress中GridControl自定义汇总列值(有选择性的汇总)

    今天碰到有同事遇到这个方面的需求,贴一下吧. private void gvTop_CustomSummaryCalculate(object sender, CustomSummaryEventAr ...

  3. vc的环境变量配置和缺少mspdb60.dll的解决方法

    vc的编译器是cl.exe,我们如果在vc中编译就不用配置环境,但是如果要在任何位置用命令提示符打开编译器cl.exe来编译程序,那么就要配置环境了. 下面我就讲讲vc的环境变量配置和缺少mspdb6 ...

  4. 如何关闭常见浏览器的 HSTS 功能

    在安装配置 SSL 证书时,可以使用一种能使数据传输更加安全的Web安全协议,即在服务器端上开启HSTS (HTTP Strict Transport Security).它告诉浏览器只能通过HTTP ...

  5. 5分钟学习spark streaming 表格和图形化的文档-概览

    看图回答以下问题: 1. spark streaming 架构以及功能特性 2. spark streaming mode?以及每个mode主要特性?包括延迟和语义保证.

  6. centos7服务的管理

    centos7上服务管理  author:headsen chen     2017-10-16  16:03:53       1,启动服务(每条都可以) systemctl start httpd ...

  7. 20165230 《Java程序设计》第1周学习总结

    20165230 2017-2018-2 <Java程序设计>第1周学习总结 教材学习内容总结 本周通过学习了解了java的历史,地位,特点以及java的应用和基本的开发步骤,对Java有 ...

  8. 自然语言处理中的自注意力机制(Self-attention Mechanism)

    自然语言处理中的自注意力机制(Self-attention Mechanism) 近年来,注意力(Attention)机制被广泛应用到基于深度学习的自然语言处理(NLP)各个任务中,之前我对早期注意力 ...

  9. 1-1 spring基础

    1.spring是一个开源的轻量级的应用开发框架,它提供了IOC(Inversion of Control控制反转)和AOP(Aspect -Oriented Programming 面向切面编程)的 ...

  10. Redis主从集群的Sentinel配置

    http://www.cnblogs.com/LiZhiW/p/4851631.html