更新时间:2024-10-25 GMT+08:00

JKS格式SSL证书转换PEM格式

本章节指导您将JKS格式的SSL证书转换为PEM格式。

前提条件

制作PEM格式的SSL证书

  1. 登录管理控制台。
  2. 在管理控制台左上角单击,选择区域。

    请选择Kafka实例所在的区域。

  3. 在管理控制台左上角单击,选择“应用中间件 > 分布式消息服务Kafka版”,进入分布式消息服务Kafka专享版页面。
  4. 单击Kafka实例的名称,进入实例详情页面。
  5. 在“连接信息 > SSL证书”后,单击“下载”,将SSL证书下载到本地。
  6. 解压证书zip包,获取JKS格式的SSL证书。
  7. 登录Linux系统的服务器,将JKS格式的SSL证书上传到服务器中。
  8. 执行以下命令,将JKS格式证书转换为PKCS12格式。

    keytool -importkeystore -srckeystore client.jks -destkeystore client.p12 -deststoretype PKCS12
    1. 提示“Enter destination keystore password”时,输入您自定义的PKCS12格式证书密码,并记录此密码,此密码在后续步骤中会使用。
    2. 提示“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

  9. 执行以下命令,查看生成的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

  10. 执行以下命令,将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:

  11. 执行以下命令,查看生成的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