栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

dubbo支持哪些协议(dubbo服务注册)

dubbo支持哪些协议(dubbo服务注册)

参考文档:
1、https://dubbo.apache.org/zh/docs/advanced/tls/
2、https://juejin.cn/post/6889066697262071821

项目需要使用Dubbo的TLS,但网上相关资料非常少(能找到的都放到了上面)。撸了点源码,记录实现过程,以供参考。

源码:dubbo开启TLS(ssl)源码-Java文档类资源-CSDN下载

一、生成秘钥
openssl genrsa -out E:/1/dubbo/privkey.pem 1024
openssl req -new -key E:/1/dubbo/privkey.pem -out E:/1/dubbo/cert.csr
openssl req -new -x509 -key E:/1/dubbo/privkey.pem -out E:/1/dubbo/cacert.pem -days 1095

执行情况如下:

二、以下说明双向认证

1、provider
1.1 增加配置,启动ssl:dubbo.prorocpl.ss-enabled=true。

server:
  port: 8861
dubbo:
  # 配置服务信息
  application:
    name: dubbo-provider
    # 禁用QOS同一台机器可能会有端口冲突现象
    qos-enable: false
    qos-accept-foreign-ip: false
  # 配置注册中心
  registry:
    address: nacos://10.17.22.10:8848
  # 设置协议-协议由提供方指定消费方被动接受
  protocol:
    name: dubbo
    port: 20888
# 启动ssl
    ssl-enabled: true   
spring:
  main:
    # 解决Bean重复定义问题
    allow-bean-definition-overriding: true

1.2 启动类中增加SslConfig()

@Bean
public SslConfig sslConfig() {
    SslConfig sslConfig = new SslConfig();
    // 单向开始
    //        sslConfig.setServerTrustCertCollectionPath("F:/spring-boot-dubbo-demo-master/cacert.pem");
    // 单向结束
    sslConfig.setServerKeyCertChainPath("F:/spring-boot-dubbo-demo-master/cacert.pem");
    sslConfig.setServerPrivateKeyPath("F:/spring-boot-dubbo-demo-master/privkey.pem");
    //        sslConfig.setServerKeyPassword("123456");
    sslConfig.setServerTrustCertCollectionPath("F:/spring-boot-dubbo-demo-master/cacert.pem");

    return sslConfig;
}

2、consumer
2.1 、 增加配置,启动ssl:dubbo.prorocpl.ss-enabled=true。

server:
  port: 8862
dubbo:
  # 配置服务信息
  application:
    name: dubbo-consumer
    # 禁用QOS同一台机器可能会有端口冲突现象
    qos-enable: false
    qos-accept-foreign-ip: false
  # 配置注册中心
  registry:
    address: nacos://10.17.22.10:8848
  protocol:
    # 这里是重点
    ssl-enabled: true
  # 设置超时时间
  consumer:
    timeout: 4000
spring:
  main:
    # 解决Bean重复定义问题
    allow-bean-definition-overriding: true

2.2 、启动类中增加SslConfig

@Bean
public SslConfig sslConfig() {
    SslConfig sslConfig = new SslConfig();

    // 单向开始, 如果被认证方是consumer, 设置下面两个
    //        sslConfig.setClientKeyCertChainPath("F:/spring-boot-dubbo-demo-master/cacert.pem");
    //        sslConfig.setClientPrivateKeyPath("F:/spring-boot-dubbo-demo-master/privkey.pem");
    // 单向结束

    sslConfig.setClientKeyCertChainPath("F:/spring-boot-dubbo-demo-master/cacert.pem");
    sslConfig.setClientPrivateKeyPath("F:/spring-boot-dubbo-demo-master/privkey.pem");
    //       sslConfig.setClientKeyPassword("123456");
    sslConfig.setClientTrustCertCollectionPath("F:/spring-boot-dubbo-demo-master/cacert.pem");

    return sslConfig;
}
三、过程中常见报错

3.1 ssl支持的秘钥格式

key – a PKCS#8 private key
keyCertChain – the X.509 certificate chain

3.2 Could not find certificate file or the certificate is invalid.
可以在下面的报错前打断点跟一下。 一般是 密码没有或错误,路径不对

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/771918.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号