• 沒有找到結果。

Kafka客户端连接开启SASL的Kafka实例时,您可以使用分布式消息服务Kafka版提供 的证书,也可以使用自己制作的证书。如果使用自己制作的证书,请参考本章节将分 布式消息服务Kafka版提供的证书替换为自己的证书。

制作并替换证书为白名单特性,需要联系后台管理人员开通后方可使用。

说明

替换证书将重启实例,请谨慎操作。

前提条件

● 已准备一台Linux系统的服务器。

● 实例已开启Kafka SASL_SSL。

步骤一:制作证书

步骤1 登录Linux系统的服务器,执行以下命令,生成server.keystore.jks证书的孵化器。

keytool -genkey -keystore server.keystore.jks -alias localhost -validity 3650 -keyalg RSA

按照提示信息输入keystore密码。密码需要满足如下要求:

● 8~32个字符。

● 至少包含以下字符中的3种:大写字母、小写字母、数字、特殊字符`~!@#$

%^&*()-_=+\|[{}]:'",<.>/?和空格,并且不能以-开头。

● 非弱密码(如果不能确定哪些是弱密码,请在替换证书对话框中输入密码,系统 会自动判定是否为弱密码)。

按照提示信息输入证书拥有者的信息,如姓名、单位、所在城市等。

步骤2 执行以下命令,创建CA的认证证书。

openssl req -new -x509 -keyout ca-key -out ca-cert -days 3650

按照提示信息输入PEM密码。

按照提示信息输入证书拥有者的信息。

步骤3 执行以下命令,通过CA创建一个服务器的Truststore证书,有了Truststore证书才可以 进行证书有效性的检测。

keytool -keystore server.truststore.jks -alias CARoot -import -file ca-cert

按照提示信息输入服务器证书的Truststore密码。密码需要满足如下要求:

● 8~32个字符。

● 至少包含以下字符中的3种:大写字母、小写字母、数字、特殊字符`~!@#$

%^&*()-_=+\|[{}]:'",<.>/?和空格,并且不能以-开头。

● 非弱密码(如果不能确定哪些是弱密码,请在替换证书对话框中输入密码,系统 会自动判定是否为弱密码)。

出现如下提示信息时,输入“y”。

Trust this certificate?

步骤4 执行以下命令,通过CA创建一个客户端的Truststore证书。

keytool -keystore client.truststore.jks -alias CARoot -import -file ca-cert

按照提示信息输入客户端证书的Truststore密码。此密码用于客户端连接Kafka实例 时,配置文件中“ssl.truststore.password”参数的值。

出现如下提示信息时,输入“y”。

Trust this certificate?

步骤5 执行以下命令,为服务器证书签名。

1. 导出服务器证书“server.cert-file”。

keytool -keystore server.keystore.jks -alias localhost -certreq -file server.cert-file

按照提示信息输入步骤1中设置的keystore密码。

2. 通过CA给服务器证书进行签名处理。

openssl x509 req CA cacert CAkey cakey in server.certfile out server.certsigned days 3650 -CAcreateserial

按照提示信息输入步骤2中设置的PEM密码。

3. 将CA证书导入到服务器keystore。

keytool -keystore server.keystore.jks -alias CARoot -import -file ca-cert

按照提示信息输入步骤1中设置的keystore密码。

出现如下提示信息时,输入“y”。

Trust this certificate?

4. 将已签名的服务器证书导入到服务器keystore。

keytool -keystore server.keystore.jks -alias localhost -import -file server.cert-signed

按照提示信息输入步骤1中设置的keystore密码。

步骤6 导出证书“server.keystore.jks”和“server.truststore.jks”到本地PC机。

4-24 证书目录

----结束

步骤二:替换证书

步骤1 登录管理控制台。

步骤2 在管理控制台左上角单击 ,选择区域。

说明

此处请选择与您的应用服务相同的区域。

步骤3 在管理控制台左上角单击 ,选择“应用中间件 > 分布式消息服务Kafka版”,进入 分布式消息服务Kafka专享版页面。

步骤4 单击待替换证书的实例名称,进入实例详情页面。

步骤5 在“高级配置 > SSL证书”后,单击 ,弹出“替换SSL证书”对话框。

4-25 高级配置

步骤6 参考表4-1,设置替换SSL证书的参数。

4-26 替换 SSL 证书

4-1 替换 SSL 证书参数说明

参数名称 说明

Key密码 输入制作证书中设置的keystore密码 Keystore密码 输入制作证书中设置的keystore密码 Keystore文件 导入“server.keystore.jks”证书 Truststore密码 输入服务端证书的Truststore密码 Truststore文件 导入“server.truststore.jks”证书

步骤7 单击“确定”,弹出“替换SSL证书”对话框。

4-27 确认是否替换证书

步骤8 单击“确认”,完成证书的替换。

在“后台任务管理”页签,查看证书是否替换成功。

4-28 查看证书是否替换成功

说明

证书替换成功后,在实例详情页单击 ,下载的证书为分布式消息服务Kafka版提供的证书,并 非您自己制作的证书。

----结束

步骤三:修改客户端配置文件

替换证书后,需要在客户端的“consumer.properties”和“producer.properties”文 件中,分别修改“ssl.truststore.location”和“ssl.truststore.password”参数。

security.protocol=SASL_SSL

ssl.truststore.location=/opt/kafka_2.11-2.3.0/config/client.truststore.jks ssl.truststore.password=dms@kafka

ssl.endpoint.identification.algorithm=

● ssl.truststore.location配置为client.truststore.jks证书的存放路径。

● ssl.truststore.password为客户端证书的Truststore密码。

● ssl.endpoint.identification.algorithm为证书域名校验开关,为空则表示关闭。这 里需要保持关闭状态,必须设置为空。

相關文件