OpenSSL 在 Windows 上的应用指南 – wiki基地


OpenSSL 在 Windows 上的应用指南

OpenSSL 是一个强大、开源的命令行工具包,提供了用于传输层安全 (TLS) 和安全套接字层 (SSL) 协议的强大工具,同时也是一个通用的加密库。尽管它通常在 Linux 和 macOS 上使用,但它也可以有效地在 Windows 上用于生成私钥、创建证书签名请求 (CSR)、安装 SSL/TLS 证书以及识别证书信息等任务。

本指南将引导您完成在 Windows 操作系统上安装和使用 OpenSSL 的过程。

1. 在 Windows 上安装 OpenSSL

Windows 默认不包含 OpenSSL,因此您需要安装预编译的二进制文件。

1.1. 先决条件

在安装 OpenSSL 之前,请确保已安装 Microsoft Visual C++ Redistributables。如果未安装,OpenSSL 安装程序会提示您下载并安装它。

1.2. 下载 OpenSSL

推荐的 Windows 预编译 OpenSSL 二进制文件的来源是 Win32/Win64 OpenSSL Installation Project。

  1. 访问 Shining Light Productions 网站 (slproweb.com/products/Win32OpenSSL.html)。
  2. 下载适用于您系统的安装程序(例如,适用于 64 位系统的 “Win64 OpenSSL Light”)。

1.3. 运行安装程序

  1. 双击下载的 .exe 文件以启动安装。
  2. 以管理员身份运行安装程序。
  3. 接受许可协议。
  4. 当提示安装目录时,通常建议将其安装在 Windows 目录之外,例如 C:\OpenSSL-Win64 (对于 64 位系统) 或 C:\OpenSSL-Win32 (对于 32 位系统)。
  5. 在安装过程中,可能会询问您将 OpenSSL DLL 文件复制到何处。通常选择“Windows 系统目录”或“OpenSSL 二进制文件 (/bin) 目录”是安全的。
  6. 完成安装向导。

1.4. 设置环境变量

为了能够从任何命令行提示符使用 OpenSSL,您需要将其 bin 目录添加到系统的 PATH 环境变量中,并设置 OPENSSL_CONF 变量。

  1. 通过在 Windows 搜索栏中搜索“环境变量”并选择“编辑系统环境变量”来打开“系统属性”。
  2. 点击“环境变量…”按钮。
  3. 对于 PATH 变量:
    • 在“系统变量”下,找到并选择 Path 变量,然后点击“编辑”。
    • 点击“新建”,然后添加 OpenSSL bin 目录的路径(例如,C:\OpenSSL-Win64\bin)。
    • 点击“确定”关闭对话框。
  4. 对于 OPENSSL_CONF 变量:
    • 在“系统变量”下,点击“新建”。
    • 将“变量名”设置为 OPENSSL_CONF
    • 将“变量值”设置为 openssl.cfg 文件的路径,该文件通常位于 OpenSSL 安装的 bin 目录中(例如,C:\OpenSSL-Win64\bin\openssl.cfg)。
    • 点击“确定”关闭对话框。

1.5. 验证安装

  1. 打开一个新的命令提示符窗口(现有的窗口无法识别新的环境变量)。
  2. 输入 openssl version 并按 Enter 键。
  3. 如果安装成功,您应该会看到 OpenSSL 的版本号和发布日期。如果您收到类似“’openssl’ 不是内部或外部命令”的错误,请仔细检查您的环境变量设置。

2. 基本用法

安装并配置完成后,您可以在命令提示符中输入 openssl 后跟所需的命令及其参数来使用 OpenSSL。

3. 常用 OpenSSL 命令

OpenSSL 广泛用于管理 SSL/TLS 证书和密钥。以下是一些常用命令:

3.1. 生成密钥和 CSR

  • 生成新的私钥和证书签名请求 (CSR):
    此命令会生成一个 2048 位的 RSA 私钥和一个 CSR。系统会提示您输入国家、州、组织和通用名称等信息。

    bash
    openssl req -out CSR.csr -new -newkey rsa:2048 -nodes -keyout privateKey.key

    • -out CSR.csr: 指定 CSR 的输出文件。
    • -new: 生成新的证书请求。
    • -newkey rsa:2048: 生成一个新的 2048 位 RSA 私钥。
    • -nodes: 确保私钥不使用密码加密。
    • -keyout privateKey.key: 指定私钥的输出文件。
  • 生成自签名证书:
    这将创建一个由您自己的私钥签名的证书,适用于测试或内部使用。

    bash
    openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 -keyout privateKey.key -out certificate.crt

    • -x509: 输出自签名证书而不是 CSR。
    • -sha256: 使用 SHA256 进行签名。
    • -days 365: 将证书有效期设置为 365 天。
    • 其他选项与 CSR 生成命令类似。
  • 为现有私钥生成 CSR:

    bash
    openssl req -out CSR.csr -key privateKey.key -new

  • 从私钥中删除密码:
    如果您的私钥已加密,此命令会创建一个未加密的版本。

    bash
    openssl rsa -in privateKey.pem -out newPrivateKey.pem

3.2. 检查证书、CSR 和私钥

  • 检查证书签名请求 (CSR):

    bash
    openssl req -text -noout -verify -in CSR.csr

  • 检查私钥:

    bash
    openssl rsa -in privateKey.key -check

  • 检查证书:

    bash
    openssl x509 -in certificate.crt -text -noout

3.3. 转换证书格式

OpenSSL 可以在各种格式(例如 PEM, DER, PFX, P7B)之间转换证书和密钥。

  • 将 PEM 转换为 DER:

    bash
    openssl x509 -outform der -in certificate.pem -out certificate.der

  • 将 PEM 和私钥转换为 PFX/P12:
    这对于将证书导入 Windows 系统或 IIS 非常有用。

    bash
    openssl pkcs12 -export -out certificate.pfx -inkey privateKey.key -in certificate.crt -certfile CACert.crt

    • -certfile CACert.crt: 如果适用,包含中间 CA 证书。

总结

本指南为在 Windows 上使用 OpenSSL 提供了基础。有关更高级的用法和完整的命令列表,请参阅 OpenSSL 官方文档。

滚动至顶部