Skip to content

Instantly share code, notes, and snippets.

@haoel
Created March 28, 2022 09:36
Show Gist options
  • Star 18 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save haoel/573bd147361f4153f5dbc800c16f4412 to your computer and use it in GitHub Desktop.
Save haoel/573bd147361f4153f5dbc800c16f4412 to your computer and use it in GitHub Desktop.

mTLS 配置

对于mTLS的配置的证书来说,有如下的提示。

  • 三个文件。 对于大多数系统,如:MySQL, Redis,PostgreSQL。会需要三个文件:CA证书 + CERT 和 KEY。可以在我的这个开源项目(https://github.com/haoel/mTLS/tree/main/certs )中找到我生成的CA,以及 Server 和 Client的 .crt.key 文件。生成的方法也在我的那个开源项目中了。

  • 两个文件。 对于有的系统,比如:MongoDB,他只要两个文件,一个是CA,一个是 pem 文件,对于pem文件,你可以直接把上面的 .crt 和 .key 合并了就好了。如:cat server.crt server.key > server.pem

  • JKS文件。 对于一些系统,比如:Kafka 和 Zookeeper。他要的不是上面的明文的格式,他要的是一种jks的格式,这是Java的格式。怎么从上面的明文的方式转到jks的文件。需要经过下面几步。

    1)将 .crt 和 .key 通过如下命令转成p12 格式

    openssl pkcs12 -export -in server.crt -inkey server.key -name myserver.internal.net > server.p12
    

    2)把 p12 格式转成 keystore 文件

    keytool -importkeystore -srckeystore server.p12 -destkeystore kafka.server.keystore.jks -srcstoretype pkcs12
    

    3)把 CA 证书转成 truststore文件

    keytool -keystore kafka.server.truststore.jks -alias CARoot -import -file ca.crt
    
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment