自建CA签发SSL证书

自建 CA 并使用它签发 SSL 证书是一种在内部环境中管理证书的常见方法。以下是一个简单的步骤指南:

1. 创建自建 CA

首先,您需要生成 CA 的私钥和根证书。

生成 CA 私钥

openssl genrsa -out myCA.key 2048

生成 CA 根证书

openssl req -x509 -new -nodes -key myCA.key -sha256 -days 3650 -out myCA.pem

在这一步中,您需要输入一些信息,如国家、组织名等。这些信息将嵌入到证书中。

2. 使用自建 CA 签发 SSL 证书

为您的域生成私钥

openssl genrsa -out mydomain.key 2048

生成证书签名请求 (CSR)

openssl req -new -key mydomain.key -out mydomain.csr

在这一步中,确保 Common Name (CN) 字段填写为您的域名。

创建一个配置文件 (extfile.cnf)

创建一个 extfile.cnf 文件,内容如下:

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage = digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName = @alt_names

[alt_names]
DNS.1 = mydomain.com
DNS.2 = www.mydomain.com

确保 DNS.1DNS.2 等字段包含您希望证书覆盖的所有域名。

签发 SSL 证书

openssl x509 -req -in mydomain.csr -CA myCA.pem -CAkey myCA.key -CAcreateserial -out mydomain.crt -days 825 -sha256 -extfile extfile.cnf

3. 安装 CA 根证书

将生成的 myCA.pem 安装到需要信任此 CA 的所有客户端或服务器上。这通常涉及将证书添加到操作系统或浏览器的受信任根证书存储中。

在 Windows 上安装根证书

  1. 双击证书文件

    • 找到您的根证书文件(通常是 .pem.crt 文件),双击打开。

  2. 启动证书导入向导

    • 在证书窗口中,点击“安装证书…”按钮以启动证书导入向导。

  3. 选择存储位置

    • 选择“本地计算机”或“当前用户”,然后点击“下一步”。

    • 如果选择“本地计算机”,可能需要管理员权限。

  4. 选择证书存储

    • 选择“将所有的证书放入下列存储”。

    • 点击“浏览”,选择“受信任的根证书颁发机构”,然后点击“确定”。

  5. 完成导入

    • 继续点击“下一步”,然后点击“完成”以结束导入过程。

  6. 确认导入

    • 系统可能会提示您确认导入,点击“是”以确认。

在 Linux 上安装根证书

在 Linux 系统中,根证书通常存储在 /etc/ssl/certs/usr/local/share/ca-certificates 目录中。具体步骤如下:

  1. 复制证书到合适的目录

    • 将您的根证书文件复制到 /usr/local/share/ca-certificates 目录中,并确保文件以 .crt 结尾。

    sudo cp myCA.crt /usr/local/share/ca-certificates/
  2. 更新证书存储

    • 运行以下命令以更新系统的证书存储。

    sudo update-ca-certificates
  3. 验证安装

    • 验证证书是否成功添加:

    ls /etc/ssl/certs/ | grep myCA

4. 配置服务器

将生成的 mydomain.crtmydomain.key 安装到您的服务器上,并配置服务器以使用这些文件进行 SSL/TLS 加密。

通过这些步骤,您就可以自建 CA 并使用它来签发 SSL 证书了。请注意,自建 CA 适用于内部环境或测试用途。在生产环境中,建议使用公共 CA 签发的证书。

最后更新于