zoukankan      html  css  js  c++  java
  • 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成功。

  • 相关阅读:
    开发管理工具(日常)
    python之uWSGI和WSGI
    php之Opcache
    nginx之健康检查
    重构糟糕的代码(一)
    PHP之50个开源项目
    Redis之各版本特性
    Redis之淘汰策略
    Redis之过期策略
    高并发之nginx限制
  • 原文地址:https://www.cnblogs.com/lexiaofei/p/8300856.html
Copyright © 2011-2022 走看看