更新时间:2024-10-25 GMT+08:00
JKS格式SSL证书转换PEM格式
本章节指导您将JKS格式的SSL证书转换为PEM格式。
前提条件
- 已准备一台Linux系统的服务器,并安装Java Development Kit 1.8.111或以上版本,配置JAVA_HOME与PATH环境变量。
- 实例已开启Kafka SASL_SSL。
制作PEM格式的SSL证书
- 登录管理控制台。
- 在管理控制台左上角单击,选择区域。
请选择Kafka实例所在的区域。
- 在管理控制台左上角单击,选择“应用中间件 > 分布式消息服务Kafka版”,进入分布式消息服务Kafka专享版页面。
- 单击Kafka实例的名称,进入实例详情页面。
- 在“连接信息 > SSL证书”后,单击“下载”,将SSL证书下载到本地。
- 解压证书zip包,获取JKS格式的SSL证书。
- 登录Linux系统的服务器,将JKS格式的SSL证书上传到服务器中。
- 执行以下命令,将JKS格式证书转换为PKCS12格式。
keytool -importkeystore -srckeystore client.jks -destkeystore client.p12 -deststoretype PKCS12
- 提示“Enter destination keystore password”时,输入您自定义的PKCS12格式证书密码,并记录此密码,此密码在后续步骤中会使用。
- 提示“Enter source keystore password”时,输入JKS格式证书的密码,请输入“dms@kafka”。
示例如下:
[root@ecs-test ~]# keytool -importkeystore -srckeystore client.jks -destkeystore client.p12 -deststoretype PKCS12 Importing keystore client.jks to client.p12... Enter destination keystore password: Re-enter new password: Enter source keystore password: Entry for alias clientpublickey successfully imported. Entry for alias huaweiequipmentrootca successfully imported. Entry for alias huaweicloudca successfully imported. Import command completed: 3 entries successfully imported, 0 entries failed or cancelled
- 执行以下命令,查看生成的PKCS12格式证书“client.p12”。
ll
示例如下:
[root@ecs-test ~]# ll -rw-r--r-- 1 root root 3561 Jun 20 17:06 client.jks -rw-r--r-- 1 root root 4023 Oct 10 20:06 client.p12
- 执行以下命令,将PKCS12格式证书转换为PEM格式。
openssl pkcs12 -in client.p12 -out client.pem
按照提示信息输入8.a中设置的PKCS12格式证书密码。
示例如下:
[root@ecs-test ~]# openssl pkcs12 -in client.p12 -out client.pem Enter Import Password:
- 执行以下命令,查看生成的PEM格式证书“client.pem”。
ll
示例如下:
[root@ecs-test ~]# ll -rw-r--r-- 1 root root 3561 Jun 20 17:06 client.jks -rw-r--r-- 1 root root 4023 Oct 10 20:06 client.p12 -rw------- 1 root root 5384 Oct 10 20:24 client.pem
使用PEM格式证书访问Kafka实例
以下示例演示在Java客户端使用PEM格式证书访问Kafka实例。
参考Java客户端接入示例,连接Kafka实例生产消费消息。其中,生产消息配置文件和消费消息配置文件中的SASL信息修改为如下内容。
#SASL认证机制为“PLAIN”时,配置信息如下。 sasl.mechanism=PLAIN sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required \ username="username" \ password="password"; #SASL认证机制为“SCRAM-SHA-512”时,配置信息如下。 sasl.mechanism=SCRAM-SHA-512 sasl.jaas.config=org.apache.kafka.common.security.scram.ScramLoginModule required \ username="username" \ password="password"; #设置Kafka安全协议。 security.protocol=SASL_SSL #ssl truststore.location为SSL证书的存放路径,如下代码以Windows系统路径格式举例,您在使用时请根据实际运行环境修改路径格式。 ssl.truststore.location=E:\\temp\\client.pem #ssl.truststore.password为服务器证书密码,使用PEM格式证书访问Kafka实例,无需配置ssl.truststore.password参数。 #ssl.truststore.password=dms@kafka #ssl.endpoint.identification.algorithm为证书域名校验开关,为空则表示关闭,这里需要保持关闭状态,必须设置为空。 ssl.endpoint.identification.algorithm= #添加ssl.truststore.type参数,指定客户端使用的证书类型是PEM。 ssl.truststore.type=PEM
父主题: 配置Kafka访问控制