# 多功能 SSL/TLS 证书生成工具
Date: 2024-12-22


在当今的网络通信中，SSL/TLS 证书是确保数据传输安全的关键元素。然而，面对不同的加密算法和标准（如国际上的 RSA 和 ECC，以及中国的国密 SM2），生成和管理证书链往往是一项复杂的任务。为了简化这一过程，开发了一个高效、灵活的开源工具——**`multicertgen`**。

* * *

#### **工具简介**

`multicertgen` 是一款多功能的 SSL/TLS 证书生成工具，支持以下加密算法：

- **SM2**: 国密标准，适用于中国的商业密码加密。
- **RSA**: 国际通用的经典加密算法。
- **ECC**: 基于椭圆曲线的现代加密算法，具有高效性和安全性。

该工具专为开发者和运维人员设计，支持生成完整的证书链，适用于全球及中国商密标准的多种场景。

* * *

#### **主要功能**

1. **支持多种加密算法**：可以根据需求选择 SM2、RSA 或 ECC 算法。
2. **生成完整的证书链**：
    
    - 根 CA 证书
    - 中间 CA 证书
    - 服务器签名证书
    - 服务器加密证书（仅适用于 SM2）
3. **灵活的私钥加密**：支持生成加密和未加密的私钥。
4. **动态配置环境变量**：可以通过 `LD_LIBRARY_PATH` 和 `PATH` 指定依赖路径，方便使用定制的 Tongsuo 或 OpenSSL 环境。
5. **自动化证书生成**：减少繁琐的命令行输入，提升效率。

* * *

#### **安装与使用**

##### **1\. 克隆项目**

```bash
git clone git@github.com:weida/multicertgen.git
cd multicertgen
```

##### **2\. 设置执行权限**

```bash
chmod +x ssl_cert_chain_tool.sh
```

##### **3\. 运行脚本**

```bash
./ssl_cert_chain_tool.sh -a SM2 -o output_dir -p mypassword
```

##### **参数说明**：

- `-a`：选择加密算法（`SM2`、`RSA` 或 `ECC`）。
- `-o`：指定输出目录（默认为 `certs`）。
- `-p`：设置私钥密码（默认为 `garlic`）。
- `-u`：生成未加密的私钥。
- `-t` 和 `-l`：配置 `Tongsuo` 的二进制路径和动态库路径。

* * *

#### **适用场景**

- **国密应用**：生成符合中国加密标准的 SSL/TLS 证书链。
- **国际应用**：支持 RSA 和 ECC 算法，满足全球通用的加密需求。
- **开发与测试**：快速搭建开发和测试环境，节省手动配置时间。

* * *

#### **开源与贡献**

该项目托管在 GitHub 上，欢迎贡献代码和提出建议： [GitHub 仓库地址](https://github.com/weida/multicertgen)

图片from[林佳興](https://www.facebook.com/groups/474930279315210/user/100008072223261/?__cft__[0]=AZX6iS5bZZnrJd1ssjhZV5IGED-dwllMMk3wRxmEpoYWkCXF6GHW-k4zYn6PAhqcH48-_ST4k-yDRiuPc3W_RqHa_S0VclD2-GTdMabxCW-oWPrG6Qox1XJqD1ta1BkhPhuKhJorxjpPtyWVnRmLkBYDUxIVHPALlK9rtDpBLS_twk-zQJS-atCeYLmCo0wM_-Ab0hds5E7_dThWHgvNg0nT&__tn__=-UC*F)

