# certs-maker
**Repository Path**: hemiao3000/certs-maker
## Basic Information
- **Project Name**: certs-maker
- **Description**: No description available
- **Primary Language**: Docker
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2023-11-10
- **Last Updated**: 2023-11-10
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# Certs Maker / 自制证书工具
[](https://github.com/soulteary/certs-maker/actions/workflows/codeql.yml) [](https://github.com/soulteary/certs-maker/actions/workflows/release.yaml) [](https://hub.docker.com/r/soulteary/certs-maker) [](https://codecov.io/gh/soulteary/certs-maker)
一个小巧的 SSL 证书生成工具(Docker 工具镜像),静态文件尺寸 1.5MB 左右,容器镜像尺寸 4MB 左右。
你可以使用它快速生成需要的自签名证书,用于生产或开发场景。
## 快速上手
如果你本地已经安装好 Docker 或者 CTR,那么可以通过一条命令快速生成包含 `*.lab.com` 和 `*.data.lab.com` 的证书:
```bash
docker run --rm -it -v `pwd`/ssl:/ssl soulteary/certs-maker:v3.2.0 "--CERT_DNS=lab.com,*.lab.com,*.data.lab.com"
# 如果你希望使用 ENV 来调整生成证书的参数
# docker run --rm -it -v `pwd`/ssl:/ssl -e "CERT_DNS=lab.com,*.lab.com,*.data.lab.com" soulteary/certs-maker:v3.2.0
```
在命令执行完毕之后,我们检查执行命令的 `ssl` 就能看到生成的证书文件啦:
```bash
ssl
├── lab.com.conf
├── lab.com.crt
└── lab.com.key
```
如果你更喜欢使用配置文件来生成证书,可以使用下面这个 `docker-compose.yml`:
```yaml
version: '2'
services:
certs-maker:
image: soulteary/certs-maker:v3.2.0
environment:
- CERT_DNS=lab.com,*.lab.com,*.data.lab.com
volumes:
- ./ssl:/ssl
```
接着,执行下面的命令:
```bash
docker-compose up
# 或者在新版的 compose 中使用下面的命令
# docker compose up
```
如果你希望生成证书对 K8s 使用体验更友好,可以添加 `FOR_K8S` 参数:
```bash
docker run --rm -it -v `pwd`/ssl:/ssl soulteary/certs-maker:v3.2.0 "--CERT_DNS=lab.com,*.lab.com,*.data.lab.com --FOR_K8S=ON"
# 或
# docker run --rm -it -v `pwd`/ssl:/ssl -e "CERT_DNS=lab.com,*.lab.com,*.data.lab.com" -e "FOR_K8S=ON" soulteary/certs-maker:v3.2.0
```
当然,这里也有使用 `FOR_K8S` 参数的 `compose` 配置文件:
```yaml
version: '2'
services:
certs-maker:
image: soulteary/certs-maker:v3.2.0
environment:
- CERT_DNS=lab.com,*.lab.com,*.data.lab.com
- FOR_K8S=ON
volumes:
- ./ssl:/ssl
```
如果你希望调整生成证书文件的基础信息(描述信息),诸如签发国家、省份、街道、组织等等,可以参考下面支持的配置参数,进行手动调整。
## SSL 生成工具支持的参数
你可以通过调整环境变量或者 CLI 命令行参数来改变生成的证书。
使用环境变量:
| 类型 | 名称 | 如何在环境变量中使用 |
| ------ | ------ | ------ |
| Country Name | CERT_C | `CERT_C=CN` |
| State Or Province Name | CERT_ST | `CERT_ST=BJ` |
| Locality Name | CERT_L | `CERT_L=HD` |
| Organization Name | CERT_O | `CERT_O=Lab` |
| Organizational Unit Name | CERT_OU | `CERT_OU=Dev` |
| Common Name | CERT_CN | `CERT_CN=Hello World` |
| Domains | CERT_DNS | `CERT_DNS=lab.com,*.lab.com,*.data.lab.com` |
| Issue for K8s | FOR_K8S | `FOR_K8S=ON` |
| File Owner User | USER | `USER=ubuntu` |
| File Owner UID | UID | `UID=1234` |
| File Owner GID | GID | `GID=2345` |
使用命令行参数:
| 类型 | 名称 | 如何在环境变量中使用 |
| ------ | ------ | ------ |
| Country Name | CERT_C | `--CERT_C=CN` |
| State Or Province Name | CERT_ST | `--CERT_ST=BJ` |
| Locality Name | CERT_L | `--CERT_L=HD` |
| Organization Name | CERT_O | `--CERT_O=Lab` |
| Organizational Unit Name | CERT_OU | `--CERT_OU=Dev` |
| Common Name | CERT_CN | `--CERT_CN=Hello World` |
| Domains | CERT_DNS | `--CERT_DNS=lab.com,*.lab.com,*.data.lab.com` |
| Issue for K8s | FOR_K8S | `--FOR_K8S=ON` |
| File Owner User | USER | `--USER=ubuntu` |
| File Owner UID | UID | `--UID=1234` |
| File Owner GID | GID | `--GID=2345` |
## Docker 镜像发布地址
[soulteary/certs-maker](https://hub.docker.com/r/soulteary/certs-maker)
## 相关文档教程
- [《只有 3MB 的自签名证书制作 Docker 工具镜像:Certs Maker》](https://soulteary.com/2022/10/22/make-docker-tools-image-with-only-3md-self-signed-certificate-certs-maker.html)
- [《如何制作和使用自签名证书》](https://soulteary.com/2021/02/06/how-to-make-and-use-a-self-signed-certificate.html)