Skip to content

Files

Latest commit

74960dd · Sep 10, 2024

History

History
158 lines (121 loc) · 5.91 KB

README_CN.md

File metadata and controls

158 lines (121 loc) · 5.91 KB

Certs Maker / 自制证书工具

CodeQL Release Docker Image codecov

一个小巧的 SSL 证书生成工具(Docker 工具镜像),静态文件尺寸 1.5MB 左右,容器镜像尺寸 5MB 左右。

你可以使用它快速生成需要的自签名证书,用于生产或开发场景。

快速上手

如果你本地已经安装好 Docker 或者 CTR,那么可以通过一条命令快速生成包含 *.lab.com*.data.lab.com 的证书:

docker run --rm -it -v `pwd`/ssl:/ssl soulteary/certs-maker:v3.6.1 "--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.6.1

在命令执行完毕之后,我们检查执行命令的 ssl 就能看到生成的证书文件啦:

ssl
├── lab.com.conf
├── lab.com.der.crt
├── lab.com.der.key
├── lab.com.pem.crt
└── lab.com.pem.key

你可以根据自己的喜好,使用 PEM 或者 DER 格式的证书。

如果你更喜欢使用配置文件来生成证书,可以使用下面这个 docker-compose.yml

version: '2'
services:

certs-maker:
    image: soulteary/certs-maker:v3.6.1
    environment:
      - CERT_DNS=lab.com,*.lab.com,*.data.lab.com
    volumes:
      - ./ssl:/ssl

接着,执行下面的命令:

docker-compose up
# 或者在新版的 compose 中使用下面的命令
# docker compose up

如果你希望生成证书对 K8s 使用体验更友好,可以添加 FOR_K8S 参数:

docker run --rm -it -v `pwd`/ssl:/ssl soulteary/certs-maker:v3.6.1 "--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.6.1

当然,这里也有使用 FOR_K8S 参数的 compose 配置文件:

version: '2'
services:

certs-maker:
    image: soulteary/certs-maker:v3.6.1
    environment:
      - CERT_DNS=lab.com,*.lab.com,*.data.lab.com
      - FOR_K8S=ON
    volumes:
      - ./ssl:/ssl

如果你希望生成证书对 Firefox 的使用体验更友好,可以添加 FOR_FIREFOX 参数:

docker run --rm -it -v `pwd`/ssl:/ssl soulteary/certs-maker:v3.6.1 "--CERT_DNS=lab.com,*.lab.com,*.data.lab.com --FOR_FIREFOX=ON"
#
# docker run --rm -it -v `pwd`/ssl:/ssl -e "CERT_DNS=lab.com,*.lab.com,*.data.lab.com" -e "FOR_FIREFOX=ON" soulteary/certs-maker:v3.6.1

当然,这里也有使用 FOR_FIREFOX 参数的 compose 配置文件:

version: '2'
services:

certs-maker:
    image: soulteary/certs-maker:v3.6.1
    environment:
      - CERT_DNS=lab.com,*.lab.com,*.data.lab.com
      - FOR_FIREFOX=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
Issue for Firefox FOR_FIREFOX FOR_FIREFOX=ON
File Owner User USER USER=ubuntu
File Owner UID UID UID=1234
File Owner GID GID GID=2345
Custom certs output dir DIR DIR=./ssl
Custom certs filename CUSTOM_FILE_NAME CUSTOM_FILE_NAME=filename
Expire Days EXPIRE_DAYS EXPIRE_DAYS=3650

使用命令行参数:

类型 名称 如何在环境变量中使用
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
Issue for Firefox FOR_FIREFOX --FOR_FIREFOX=ON
File Owner User USER --USER=ubuntu
File Owner UID UID --UID=1234
File Owner GID GID --GID=2345
Custom certs output dir DIR --DIR=./ssl
Custom certs filename CUSTOM_FILE_NAME --CUSTOM_FILE_NAME=filename
Expire Days EXPIRE_DAYS --EXPIRE_DAYS=3650

Docker 镜像发布地址

soulteary/certs-maker

相关文档教程