Skip to content

Instantly share code, notes, and snippets.

@healthy-tree
Forked from haoel/mtls.notes.md
Created February 13, 2025 22:42
Show Gist options
  • Select an option

  • Save healthy-tree/d5cedd65b874b60f319e024f1985f9ca to your computer and use it in GitHub Desktop.

Select an option

Save healthy-tree/d5cedd65b874b60f319e024f1985f9ca to your computer and use it in GitHub Desktop.

Revisions

  1. @haoel haoel created this gist Mar 28, 2022.
    24 changes: 24 additions & 0 deletions mtls.notes.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,24 @@
    # 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
    ```