- 最新动态
- 功能总览
- 服务公告
- 产品介绍
- 计费说明
- 快速入门
- 用户指南
- 最佳实践
- 开发指南
- API参考
- SDK参考
-
常见问题
-
实例问题
- 为什么可用区不能选择2个?
- 创建实例时为什么无法查看子网和安全组等信息?
- 如何选择Kafka实例的存储空间?
- Kafka实例的超高IO和高IO如何选择?
- 如何选择Kafka实例存储容量阈值策略?
- Kafka服务端支持版本是多少?
- Kafka实例的ZK地址是什么?
- 创建的Kafka实例是集群模式么?
- Kafka实例是否支持修改访问端口?
- Kafka实例的SSL证书有效期多长?
- 如何将Kafka实例中的数据同步到另一个Kafka实例中?
- Kafka实例的SASL_SSL开关如何修改?
- SASL认证机制如何修改?
- 如何修改安全协议?
- 修改企业项目,是否会导致Kafka重启?
- Kafka服务和ZK是部署在相同的虚拟机中,还是分开部署?
- Kafka包周期实例支持删除吗?
- Kafka支持哪些加密套件?
- 购买实例时选择的单AZ,怎样可以扩展为多AZ?
- Kafka是否支持跨AZ容灾?已经购买的实例在哪里查看是否为跨AZ?
- Kafka支持磁盘加密吗?
- Kafka实例创建后,能修改VPC和子网吗?
- 有没有Kafka Stream的案例?
- Kafka实例版本可以升级吗?
- 怎样重新绑定公网IP?
- 实例规格变更问题
-
连接问题
- 选择和配置安全组
- Kafka实例是否支持公网访问?
- Kafka实例的连接地址默认有多少个?
- 是否支持跨Region访问?
- Kafka实例是否支持跨VPC访问?
- Kafka实例是否支持不同的子网?
- Kafka是否支持Kerberos认证,如何开启认证?
- Kafka实例是否支持无密码访问?
- 开启公网访问后,在哪查看公网IP地址?
- Kafka支持服务端认证客户端吗?
- 连接开启SASL_SSL的Kafka实例时,ssl truststore文件可以用PEM格式的吗?
- 下载的证书JKS和CRT有什么区别?
- Kafka支持哪个版本的TLS?
- Kafka实例连接数有限制吗?
- 客户端单IP连接的个数为多少?
- Kafka实例的内网连接地址可以修改吗?
- 不同实例中,使用的SSL证书是否一样?
- 为什么不建议使用Sarama客户端收发消息?
- Topic和分区问题
- 消费组问题
- 消息问题
-
Kafka Manager问题
- 登录Kafka Manager的账号是否可以设置为只读账号?
- 登录到Kafka Manager页面,为什么获取不到节点信息?
- Yikes! Insufficient partition balance when creating topic : projectman_project_enterprise_project Try again.
- Kafka Manager能否查询到消息的正文?
- Kafka Manager WebUI的端口能否修改?
- 在Kafka Manager上支持修改Topic的哪些属性?
- Kafka Manager和云监控显示的信息不一致
- Kafka Manager如何修改Topic的分区Leader?
- 实例版本在控制台和Kafka Manager上显示不一致?
- 为什么实例中存在默认名为__trace和__consumer_offsets的Topic?
- 客户端删除消费组后,在Kafka Manager中仍可以看到此消费组?
- 监控告警问题
-
实例问题
- 故障排除
-
更多文档
-
用户指南 (阿布扎比区域)
- 产品简介
- 快速入门
- 权限管理
- 准备实例依赖资源
- 购买实例
- 连接Kafka
- 实例管理
- Topic管理
- 消息管理
- 用户管理
- 消费组管理
- 流控管理
- 修改配置参数
- 调整资源配额
- 监控
- 云审计服务支持的关键操作
-
常见问题
-
实例问题
- 为什么可用区不能选择2个?
- 创建实例时为什么无法查看子网和安全组等信息?
- 如何选择Kafka实例的存储空间?
- Kafka实例的超高IO和高IO如何选择?
- 如何选择Kafka实例存储容量阈值策略?
- Kafka服务端支持版本是多少?
- Kafka实例的ZK地址是什么?
- 创建的Kafka实例是集群模式么?
- Kafka实例是否支持修改访问端口?
- Kafka实例的SSL证书有效期多长?
- 如何将Kafka实例中的数据同步到另一个Kafka实例中?
- Kafka实例的SASL_SSL开关如何修改?
- SASL认证机制如何修改?
- 修改企业项目,是否会导致Kafka重启?
- Kafka服务和ZK是部署在相同的虚拟机中,还是分开部署?
- Kafka支持哪些加密套件?
- 购买实例时选择的单AZ,怎样可以扩展为多AZ?
- Kafka是否支持跨AZ容灾?已经购买的实例在哪里查看是否为跨AZ?
- Kafka支持磁盘加密吗?
- Kafka扩容会影响业务吗?
- Kafka实例创建后,能修改VPC和子网吗?
- 有没有Kafka Stream的案例?
- Kafka实例版本可以升级吗?
- 实例版本在控制台和Kafka Manager上显示不一致?
- 怎样重新绑定公网IP?
-
连接问题
- 选择和配置安全组
- Kafka实例是否支持公网访问?
- Kafka实例的连接地址默认有多少个?
- 是否支持跨Region访问?
- Kafka实例是否支持跨VPC访问?
- Kafka实例是否支持不同的子网?
- Kafka是否支持Kerberos认证,如何开启认证?
- Kafka实例是否支持无密码访问?
- 开启公网访问后,在哪查看公网IP地址?
- Kafka支持服务端认证客户端吗?
- 连接开启SASL_SSL的Kafka实例时,ssl truststore文件可以用PEM格式的吗?
- 下载的证书JKS和CRT有什么区别?
- Kafka支持哪个版本的TLS?
- Kafka实例连接数有限制吗?
- 客户端单IP连接的个数为多少?
- Kafka实例的内网连接地址可以修改吗?
- 不同实例中,使用的SSL证书是否一样?
-
Topic和分区问题
- Kafka实例的Topic数量是否有限制?
- 为什么限制Topic的总分区数?
- Kafka支持增加减少分区数吗?
- Kafka实例创建Topic失败
- Kafka实例支持批量导入Topic功能么?或者是自动生成Topic功能?
- 为什么删除Topic不生效?删除后该Topic仍然存在
- Kafka实例是否支持查看单个Topic占用磁盘空间?
- Topic是否支持ACL权限配置?
- 消息被消费后,没有删除,导致Kafka存储空间占满?
- 如何扩总分区?
- 修改自动创建Topic的配置,会触发重启吗?
- 如何关闭自动创建Topic功能?
- Kafka可以删除消费组下不用的Topic吗?
- 消费者消费Topic失败,提示没有权限?
- 为什么实例中存在默认名为__trace和__consumer_offsets的Topic?
- 消费组问题
- 消息问题
-
Kafka Manager问题
- 登录Kafka Manager的帐号是否可以设置为只读帐号?
- 登录到Kafka Manager页面,为什么获取不到节点信息?
- Yikes! Insufficient partition balance when creating topic : projectman_project_enterprise_project Try again.
- Kafka Manager能否查询到消息的正文?
- Kafka Manager WebUI的端口能否修改?
- 在Kafka Manager上支持修改Topic的哪些属性?
- Kafka Manager和云监控显示的信息不一致
- Kafka Manager如何修改Topic的分区Leader?
- 监控告警问题
-
实例问题
- 故障排除
- 修订记录
- API参考(阿布扎比区域)
-
用户指南(巴黎区域)
- 产品简介
- 快速入门
- 权限管理
- 准备实例依赖资源
- 创建实例
- 连接Kafka
- 实例管理
- Topic管理
- 消息管理
- 用户管理
- 消费组管理
- 流控管理
- 修改配置参数
- 调整资源配额
- 监控
- 云审计服务支持的关键操作
-
常见问题
-
实例问题
- 为什么可用区不能选择2个?
- 创建实例时为什么无法查看子网和安全组等信息?
- 如何选择Kafka实例的存储空间?
- Kafka实例的超高IO和高IO如何选择?
- 如何选择Kafka实例存储容量阈值策略?
- Kafka服务端支持版本是多少?
- Kafka实例的ZK地址是什么?
- 创建的Kafka实例是集群模式么?
- Kafka实例是否支持修改访问端口?
- Kafka实例的SSL证书有效期多长?
- 如何将Kafka实例中的数据同步到另一个Kafka实例中?
- Kafka实例的SASL_SSL开关如何修改?
- SASL认证机制如何修改?
- 修改企业项目,是否会导致Kafka重启?
- Kafka服务和ZK是部署在相同的虚拟机中,还是分开部署?
- Kafka支持哪些加密套件?
- 创建实例时选择的单AZ,怎样可以扩展为多AZ?
- Kafka是否支持跨AZ容灾?已经创建的实例在哪里查看是否为跨AZ?
- Kafka支持磁盘加密吗?
- Kafka实例创建后,能修改VPC和子网吗?
- 有没有Kafka Stream的案例?
- Kafka实例版本可以升级吗?
- 实例版本在控制台和Kafka Manager上显示不一致?
- 怎样重新绑定公网IP?
- 实例规格变更问题
-
连接问题
- 选择和配置安全组
- Kafka实例是否支持公网访问?
- Kafka实例的连接地址默认有多少个?
- 是否支持跨Region访问?
- Kafka实例是否支持跨VPC访问?
- Kafka实例是否支持不同的子网?
- Kafka是否支持Kerberos认证,如何开启认证?
- Kafka实例是否支持无密码访问?
- 开启公网访问后,在哪查看公网IP地址?
- Kafka支持服务端认证客户端吗?
- 连接开启SASL_SSL的Kafka实例时,ssl truststore文件可以用PEM格式的吗?
- 下载的证书JKS和CRT有什么区别?
- Kafka支持哪个版本的TLS?
- Kafka实例连接数有限制吗?
- 客户端单IP连接的个数为多少?
- Kafka实例的内网连接地址可以修改吗?
- 不同实例中,使用的SSL证书是否一样?
- 为什么不建议使用Sarama客户端收发消息?
-
Topic和分区问题
- Kafka实例的Topic数量是否有限制?
- 为什么限制Topic的总分区数?
- Kafka支持减少分区数吗?
- Kafka实例创建Topic失败
- Kafka实例支持批量导入Topic功能么?或者是自动生成Topic功能?
- 为什么删除Topic不生效?删除后该Topic仍然存在
- Kafka实例是否支持查看单个Topic占用磁盘空间?
- Topic是否支持ACL权限配置?
- 消息被消费后,没有删除,导致Kafka存储空间占满?
- 如何扩总分区?
- 修改自动创建Topic的配置,会触发重启吗?
- 如何关闭自动创建Topic功能?
- Kafka可以删除消费组下不用的Topic吗?
- 消费者消费Topic失败,提示没有权限?
- 为什么实例中存在默认名为__trace和__consumer_offsets的Topic?
- 消费组问题
- 消息问题
- Kafka Manager问题
- 监控告警问题
-
实例问题
- 故障排除
- 修订记录
- API参考(巴黎区域)
- 开发指南(巴黎区域)
-
用户指南(吉隆坡区域)
- 产品简介
- 快速入门
- Kafka业务使用流程
- 权限管理
- 购买Kafka实例
- 配置Topic
- 连接实例
- 管理消息
- 管理消费组
- 配置流控
- 管理实例
- 变更Kafka实例规格
- 迁移数据
- 申请扩大Kafka配额
- 查看监控指标与配置告警
- 查看Kafka审计日志
-
常见问题
-
实例问题
- 为什么可用区不能选择2个?
- 创建实例时为什么无法查看子网和安全组等信息?
- 如何选择Kafka实例的存储空间?
- Kafka实例的超高IO和高IO如何选择?
- 如何选择Kafka实例存储容量阈值策略?
- Kafka服务端支持版本是多少?
- Kafka实例的ZK地址是什么?
- 创建的Kafka实例是集群模式么?
- Kafka实例是否支持修改访问端口?
- Kafka实例的SSL证书有效期多长?
- 如何将Kafka实例中的数据同步到另一个Kafka实例中?
- Kafka实例的SASL_SSL开关如何修改?
- SASL认证机制如何修改?
- 修改企业项目,是否会导致Kafka重启?
- Kafka服务和ZK是部署在相同的虚拟机中,还是分开部署?
- Kafka支持哪些加密套件?
- 购买实例时选择的单AZ,怎样可以扩展为多AZ?
- Kafka是否支持跨AZ容灾?已经购买的实例在哪里查看是否为跨AZ?
- Kafka支持磁盘加密吗?
- Kafka实例创建后,能修改VPC和子网吗?
- 有没有Kafka Stream的案例?
- Kafka实例版本可以升级吗?
- 实例版本在控制台和Kafka Manager上显示不一致?
- 实例规格变更问题
-
连接问题
- 选择和配置安全组
- Kafka实例是否支持公网访问?
- Kafka实例的连接地址默认有多少个?
- 是否支持跨Region访问?
- Kafka实例是否支持跨VPC访问?
- Kafka实例是否支持不同的子网?
- Kafka是否支持Kerberos认证,如何开启认证?
- Kafka实例是否支持无密码访问?
- Kafka支持服务端认证客户端吗?
- 连接开启SASL_SSL的Kafka实例时,ssl truststore文件可以用PEM格式的吗?
- 下载的证书JKS和CRT有什么区别?
- Kafka支持哪个版本的TLS?
- Kafka实例连接数有限制吗?
- 客户端单IP连接的个数为多少?
- Kafka实例的内网连接地址可以修改吗?
- 不同实例中,使用的SSL证书是否一样?
- 为什么不建议使用Sarama客户端收发消息?
-
Topic和分区问题
- Kafka实例的Topic数量是否有限制?
- 为什么限制Topic的总分区数?
- Kafka支持减少分区数吗?
- Kafka实例创建Topic失败
- Kafka实例支持批量导入Topic功能么?或者是自动生成Topic功能?
- 为什么删除Topic不生效?删除后该Topic仍然存在
- Kafka实例是否支持查看单个Topic占用磁盘空间?
- Topic是否支持ACL权限配置?
- 消息被消费后,没有删除,导致Kafka存储空间占满?
- 如何扩总分区?
- 修改自动创建Topic的配置,会触发重启吗?
- Kafka可以删除消费组下不用的Topic吗?
- 消费者消费Topic失败,提示没有权限?
- 为什么实例中存在默认名为__trace和__consumer_offsets的Topic?
- 消费组问题
- 消息问题
-
Kafka Manager问题
- 登录Kafka Manager的账号是否可以设置为只读账号?
- 登录到Kafka Manager页面,为什么获取不到节点信息?
- Yikes! Insufficient partition balance when creating topic : projectman_project_enterprise_project Try again.
- Kafka Manager能否查询到消息的正文?
- Kafka Manager WebUI的端口能否修改?
- 在Kafka Manager上支持修改Topic的哪些属性?
- Kafka Manager和云监控显示的信息不一致
- Kafka Manager如何修改Topic的分区Leader?
- 监控告警问题
-
实例问题
- 故障排除
- 修订记录
- API参考(吉隆坡区域)
-
用户指南 (阿布扎比区域)
- 通用参考
链接复制成功!
配置SSL双向认证
操作场景
SSL双向认证是指在通信认证时,将同时验证客户端和服务端的证书,以确保通信中涉及的双方都是受信任的。
开启SSL双向认证,主要用于对安全性要求较高的场景。
SSL双向认证为白名单特性,需要联系后台管理人员开通后方可使用。
开启/关闭SSL双向认证将重启实例,请谨慎操作。
前提条件
- 已准备一台Linux系统的服务器。
- 实例已开启Kafka SASL_SSL。
配置SSL双向认证流程
步骤一:制作客户端验证服务端的证书
- 登录Linux系统的服务器,执行以下命令,生成server.keystore.jks证书的孵化器。
keytool -genkey -keystore server.keystore.jks -alias localhost -validity 3650 -keyalg RSA
按照提示信息输入keystore密码。密码需要满足如下要求:
- 8~32个字符。
- 至少包含以下字符中的3种:大写字母、小写字母、数字、特殊字符`~!@#$%^&*()-_=+\|[{}]:'",<.>/?和空格,并且不能以-开头。
- 非弱密码(如果不能确定哪些是弱密码,请在开启SSL双向认证对话框中输入密码,系统会自动判定是否为弱密码)。
按照提示信息输入证书拥有者的信息,如姓名、单位、所在城市等。
- 执行以下命令,创建CA的认证证书。
openssl req -new -x509 -keyout ca-key -out ca-cert -days 3650
按照提示信息输入PEM密码。
按照提示信息输入证书拥有者的信息。
- 执行以下命令,从1中生成的server.keystore.jks中导出证书,并命名为“server.crt”。
keytool -keystore server.keystore.jks -alias localhost -certreq -file server.crt
按照提示信息输入keystore密码。
- 执行以下命令,使用CA的私钥对server.crt进行签名,并为签名后的证书命名为“server-signed.crt”。
openssl x509 -req -CA ca-cert -CAkey ca-key -in server.crt -out server-signed.crt -days 3650 -CAcreateserial
按照提示信息输入2中的PEM密码。
- 执行以下命令,将CA证书和“server-signed.crt”导入密钥仓库。
keytool -keystore server.keystore.jks -alias CARoot -import -file ca-cert keytool -keystore server.keystore.jks -alias localhost -import -file server-signed.crt
按照提示信息输入keystore密码。
- 执行以下命令,使客户端信任服务端证书。
keytool -keystore client.truststore.jks -alias CARoot -import -file ca-cert
按照提示信息输入client.truststore.jks的密码。密码需要满足如下要求:
- 8~32个字符。
- 至少包含以下字符中的3种:大写字母、小写字母、数字、特殊字符`~!@#$%^&*()-_=+\|[{}]:'",<.>/?和空格,并且不能以-开头。
- 非弱密码(如果不能确定哪些是弱密码,请在开启SSL双向认证对话框中输入密码,系统会自动判定是否为弱密码)。
- 导出“client.truststore.jks”和“server.keystore.jks”证书到本地PC机。
步骤二:制作服务端验证客户端的证书
- 登录Linux系统的服务器,执行以下命令,生成client.keystore.jks证书的孵化器。
keytool -genkey -keystore client.keystore.jks -alias localhost -validity 3650 -keyalg RSA
按照提示信息输入keystore密码。密码需要满足如下要求:
- 8~32个字符。
- 至少包含以下字符中的3种:大写字母、小写字母、数字、特殊字符`~!@#$%^&*()-_=+\|[{}]:'",<.>/?和空格,并且不能以-开头。
- 非弱密码(如果不能确定哪些是弱密码,请在开启SSL双向认证对话框中输入密码,系统会自动判定是否为弱密码)。
按照提示信息输入证书拥有者的信息,如姓名、单位、所在城市等。
- 执行以下命令,创建CA的认证证书。
openssl req -new -x509 -keyout ca-key -out ca-cert -days 3650
按照提示信息输入PEM密码。
按照提示信息输入证书拥有者的信息。
- 执行以下命令,从1中生成的client.keystore.jks中导出证书,并命名为“client.crt”。
keytool -keystore client.keystore.jks -alias localhost -certreq -file client.crt
按照提示信息输入keystore密码。
- 执行以下命令,使用CA的私钥对client.crt进行签名,并为签名后的证书命名为“client-signed.crt”。
openssl x509 -req -CA ca-cert -CAkey ca-key -in client.crt -out client-signed.crt -days 3650 -CAcreateserial
按照提示信息输入2中的PEM密码。
- 执行以下命令,将CA证书和“client-signed.crt”导入密钥仓库。
keytool -keystore client.keystore.jks -alias CARoot -import -file ca-cert keytool -keystore client.keystore.jks -alias localhost -import -file client-signed.crt
按照提示信息输入keystore密码。
- 执行以下命令,使服务端信任客户端证书。
keytool -keystore server.truststore.jks -alias CARoot -import -file ca-cert
按照提示信息输入server.truststore.jks的密码。
密码需要满足如下要求:
- 8~32个字符。
- 至少包含以下字符中的3种:大写字母、小写字母、数字、特殊字符`~!@#$%^&*()-_=+\|[{}]:'",<.>/?和空格,并且不能以-开头。
- 非弱密码(如果不能确定哪些是弱密码,请在开启SSL双向认证对话框中输入密码,系统会自动判定是否为弱密码)。
- 导出“server.truststore.jks”和“client.keystore.jks”证书到本地PC机。
步骤三:开启SSL双向认证
- 登录管理控制台。
- 在管理控制台左上角单击,选择区域。
说明:
此处请选择与您的应用服务相同的区域。
- 在管理控制台左上角单击,选择“应用服务 > 分布式消息服务 Kafka”,进入分布式消息服务Kafka专享版页面。
- 单击待开启SSL双向认证的实例名称,进入实例详情页面。
- 在“连接信息 > SSL双向认证”后,单击,开启SSL双向认证。
- 在弹出的“SSL双向认证”对话框中,参考表1,设置开启SSL双向认证的参数。
图2 开启SSL双向认证
表1 开启SSL双向认证参数说明 参数名称
说明
Key密码
Keystore密码
Keystore文件
导入“server.keystore.jks”证书
Truststore密码
Truststore文件
导入“server.truststore.jks”证书
须知:开启SSL双向认证将重启实例,请谨慎操作。
- 单击“确定”,完成开启SSL双向认证。
步骤四:修改客户端配置文件
开启SSL双向认证后,需要在客户端的“consumer.properties”和“producer.properties”文件中,分别修改服务端证书配置,并增加客户端证书配置。
security.protocol=SSL ssl.truststore.location=/opt/kafka_2.12-2.7.2/config/client.truststore.jks ssl.truststore.password=dms@kafka ssl.endpoint.identification.algorithm= #增加以下的客户端证书配置 ssl.keystore.location=/var/private/ssl/kafka/client.keystore.jks ssl.keystore.password=txxx3 ssl.key.password=txxx3
- security.protocol配置证书协议类型,开启SSL双向认证时,必须设置为SSL。
- ssl.truststore.location配置为client.truststore.jks证书的存放路径。
- ssl.truststore.password为client.truststore.jks的密码。
- ssl.endpoint.identification.algorithm为证书域名校验开关,为空则表示关闭。这里需要保持关闭状态,必须设置为空。
- ssl.keystore.location配置为client.keystore.jks证书的存放路径。
- ssl.keystore.password配置为client.keystore.jks的密码。
- ssl.key.password配置为client.keystore.jks的密码。
关闭SSL双向认证
- 登录管理控制台。
- 在管理控制台左上角单击,选择区域。
说明:
此处请选择与您的应用服务相同的区域。
- 在管理控制台左上角单击,选择“应用服务 > 分布式消息服务 Kafka”,进入分布式消息服务Kafka专享版页面。
- 单击待关闭SSL双向认证的实例名称,进入实例详情页面。
- 在“连接信息 > SSL双向认证”后,单击,关闭SSL双向认证。
须知:
关闭SSL双向认证将重启实例,请谨慎操作。
- 关闭SSL双向认证后,需要在客户端的“consumer.properties”和“producer.properties”文件中,分别修改服务端证书协议类型,并删除客户端证书配置。
security.protocol=SASL_SSL ssl.truststore.location=/opt/kafka_2.12-2.7.2/config/client.truststore.jks ssl.truststore.password=dms@kafka ssl.endpoint.identification.algorithm= #删除以下的客户端证书配置 ssl.keystore.location=/var/private/ssl/kafka.client.keystore.jks ssl.keystore.password=txxx3 ssl.key.password=txxx3
security.protocol配置证书协议类型,关闭SSL双向认证时,必须设置为SASL_SSL。“ssl.truststore.location”、“ssl.truststore.password”和“ssl.endpoint.identification.algorithm”无需修改。