bg-tutorials

如何在 Nutanix 集群上生成 CSR

本指南将向您展示如何为 Nutanix 集群生成 CSR(证书签名请求),即您发送给证书颁发机构以获取 Prism Element(单集群控制台)和 Prism Central(多集群控制台)可信 SSL/TLS 证书的请求。Prism 并不包含内置的 CSR 向导,因此您需要使用 OpenSSL 在集群之外生成请求和匹配的私钥,将 CSR 提交给 CA,然后将签发的证书重新导入 Prism。

Nutanix 接受使用 SHA-256 签名的 RSA 2048 密钥,或 ECDSA 256(P-256)或 ECDSA 384(P-384)密钥。生成 CSR 时请选择其中一种密钥类型,否则 Prism 中的导入将会失败。以下步骤涵盖了 Windows(Windows 上的 OpenSSL)和 Linux/macOS,适用于当前的 AOS 版本(AOS 6.x 和 AOS 7.x)以及 Prism Central 2024.x / 2025.x。

开始之前

  • 在运行命令的工作站上安装 OpenSSL 1.1.1 或更高版本。macOS 和大多数 Linux 发行版都自带该工具。在 Windows 上,请安装一个维护良好的构建版本(例如 Shining Light Productions 提供的 Win64 OpenSSL 软件包),然后打开一个新的终端,以确保新的 openssl 命令已加入 PATH 中。
  • 用户在浏览器中输入以访问 Prism 的确切完全限定域名(FQDN),例如 prism.example.com。如果您有多个名称(一个 FQDN 加一个简短的主机名,或一个证书下的多个集群 VIP),请列出所有需要的名称,以便将它们全部添加为使用者备用名称(SAN)。
  • 您的组织信息:法定组织名称、所在城市、州或省,以及两位字母的 ISO 国家代码。这些信息是 OV/EV 证书所必需的,CA 会依据公开记录进行验证。

使用 OpenSSL 生成 CSR(一条命令,含 SAN)

这是最快的方法,只要您安装了 OpenSSL 1.1.1 或更高版本,就可以在 Windows、Linux 和 macOS 上使用。它会生成一个 2048 位的 RSA 密钥,以及一个设置了通用名称(Common Name)、填充了 SAN 扩展并使用 SHA-256 作为签名哈希算法的 CSR。

第 1 步:运行 OpenSSL 命令

打开一个终端(Windows 上的命令提示符或 PowerShell,macOS/Linux 上的 Terminal),切换到您希望保存密钥和 CSR 的文件夹,然后运行:

openssl req -new -newkey rsa:2048 -nodes -sha256 
  -keyout prism.example.com.key 
  -out prism.example.com.csr 
  -subj "/C=US/ST=California/L=San Jose/O=Example Inc/CN=prism.example.com" 
  -addext "subjectAltName=DNS:prism.example.com,DNS:prism"

在 Windows 命令提示符中,请将命令写在一行上(去掉反斜杠续行符)。以下是每个标志的作用:

  • -newkey rsa:2048 生成一个全新的 2048 位 RSA 密钥对。请坚持使用 2048 位:Nutanix 在 Private Key Type 下拉菜单中列出的支持的 RSA 大小就是 RSA 2048,并且有客户反馈在 Prism Central 上使用 RSA 4096 密钥会导致导入失败。如果您需要更强的密钥,请改用 ECDSA P-256 或 P-384(两者均受支持)。
  • -nodes 生成不带密码短语的私钥。Prism 导入的是未加密的 PEM 密钥,因此这一步能省去您之后再移除密码的操作。
  • -sha256 使用 SHA-256 对 CSR 进行签名。任何公共 CA 都不再接受 SHA-1。
  • -subj 在一行中设置可分辨名称(Distinguished Name)。请将每个值替换为您自己的信息。使用两位字母的 ISO 国家代码(如 US、GB、DE)。组织单位(OU)字段在公共证书中已被弃用,可以省略。
  • -addext “subjectAltName=DNS:…” 将使用者备用名称(Subject Alternative Name)扩展写入 CSR。列出客户端将使用的每个主机名,以逗号分隔,每个前面都加上 DNS: 前缀。浏览器会忽略通用名称,只匹配 SAN,因此这个列表才是最终显示在证书上的内容。

若要生成 ECDSA 密钥而非 RSA 密钥,请替换 -newkey 参数:

# ECDSA P-256 (Nutanix "ECDSA 256")
openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -nodes -sha256 
  -keyout prism.example.com.key -out prism.example.com.csr 
  -subj "/C=US/ST=California/L=San Jose/O=Example Inc/CN=prism.example.com" 
  -addext "subjectAltName=DNS:prism.example.com,DNS:prism"

# ECDSA P-384 (Nutanix "ECDSA 384") - use -sha384 to match the curve
openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:secp384r1 -nodes -sha384 
  -keyout prism.example.com.key -out prism.example.com.csr 
  -subj "/C=US/ST=California/L=San Jose/O=Example Inc/CN=prism.example.com" 
  -addext "subjectAltName=DNS:prism.example.com,DNS:prism"

-pkeyopt ec_paramgen_curve: 这种写法在所有平台和 shell 环境中都适用——包括 Linux、macOS,以及 Windows 上的命令提示符和 PowerShell——无需单独的参数文件。(如果您使用的旧版 OpenSSL 构建不支持此选项,请先用 openssl ecparam -name prime256v1 -out ec.param 生成曲线参数,然后使用 -newkey ec:ec.param 代替。)

第 2 步:确认已生成两个文件

OpenSSL 会在当前文件夹中写入两个文件:

  • prism.example.com.key,即私钥。请对该文件保密并妥善备份。 Prism 会在安装过程中导入该文件,而且仅凭证书本身是无法恢复私钥的。
  • prism.example.com.csr,即您要发送给 CA 的 CSR。

第 3 步:提交前检查 CSR

建议快速检查一下通用名称、每一个 SAN 条目以及密钥大小是否正确。在同一台机器上运行:

openssl req -noout -text -in prism.example.com.csr

请查看 Subject: 一行以及列出您所需全部主机名的 X509v3 Subject Alternative Name: 区块。如果您更喜欢通过浏览器进行检查,可以将 CSR 内容粘贴到 SSL Dragon 的 CSR 解码器 中确认相同的信息。

第 4 步:将 CSR 提交给证书颁发机构

使用任意文本编辑器打开 prism.example.com.csr。您会看到一段以如下方式开头和结尾的内容:

-----BEGIN CERTIFICATE REQUEST-----
MIICvDCCAaQCAQAwdzELMAkGA1UEBhMCVVMxEzARBgNVBAgMCkNhbGlmb3JuaWEx
... (many lines of base64) ...
-----END CERTIFICATE REQUEST-----

请选中整个区块,包括 BEGIN CERTIFICATE REQUEST 和 END CERTIFICATE REQUEST 这两行,复制后粘贴到订单表单的 CSR 字段中。CA 会验证该请求,签发证书,并通过电子邮件向您发送一个包含服务器证书以及一个或多个中间(和根)CA 证书的证书包。

替代方案:使用 OpenSSL 配置文件

如果您更愿意将请求参数保存在文件中(在重新签发同一证书或需要添加大量 SAN 时会很方便),请将以下内容放入一个名为 nutanix.cnf 的文件中:

[ req ]
default_bits       = 2048
default_md         = sha256
prompt             = no
encrypt_key        = no
distinguished_name = req_dn
req_extensions     = v3_req

[ req_dn ]
C  = US
ST = California
L  = San Jose
O  = Example Inc
CN = prism.example.com

[ v3_req ]
basicConstraints     = CA:FALSE
keyUsage             = digitalSignature, keyEncipherment
extendedKeyUsage     = serverAuth, clientAuth
subjectAltName       = @alt_names

[ alt_names ]
DNS.1 = prism.example.com
DNS.2 = prism

将 [ req_dn ] 下的值替换为您自己的信息,并在 [ alt_names ] 下为每个主机名添加一行 DNS.n。然后一次性生成密钥和 CSR:

openssl req -new -nodes -newkey rsa:2048 -sha256 
  -keyout prism.example.com.key 
  -out prism.example.com.csr 
  -config nutanix.cnf

其输出结果与上文的单命令方法完全相同:一个 2048 位的 RSA 密钥,以及一个编码了您的主体信息和每个 SAN 的 CSR。发送前请使用 openssl req -noout -text -in prism.example.com.csr 进行检查。

CA 签发证书之后

CA 会返回已签发的服务器证书以及证书链(一个或多个中间证书和根 CA)。Prism 需要导入三个文件:

  • 私钥(Private Key):您使用 OpenSSL 生成的未加密 PEM 格式 .key 文件。
  • 公共证书(Public Certificate):您签发的 PEM 格式服务器证书(通常带有 .crt 或 .pem 扩展名)。
  • CA 证书/证书链(CA Certificate/Chain):一个包含所有中间证书以及根 CA 的单个 PEM 文件,按顺序拼接,根 CA 放在最后。Prism 只提供一个证书链字段,因此需要将所有内容合并为一个文件。

有关完整的安装流程(Prism Element 和 Prism Central 中的界面操作路径、私钥类型选择,以及导入后的短暂 Web 服务重启),请参阅我们的如何在 Nutanix 集群上安装 SSL 证书指南。要在导入后检查实际生效的证书,可以使用 SSL 检测工具 扫描 Prism 的 URL(如果 Prism 位于内部网络中,请在该网络内部运行检查,或直接在浏览器中查看证书)。

更喜欢使用网页表单?使用我们的 CSR 生成器

如果您不想运行 OpenSSL,我们的CSR 生成器可以通过一个表单生成等效的 CSR 和私钥。请选择 RSA 2048、ECDSA P-256 或 ECDSA P-384,以确保输出结果符合 Nutanix 的要求,填写您的主体信息和 SAN 列表,然后下载密钥和 CSR。请按照处理 OpenSSL 输出文件的方式妥善保存密钥文件:Prism 无法重新签发或恢复该密钥。

立即订购 SSL 证书, 可节省 10% 的费用!

快速发行, 强大加密, 99.99% 的浏览器信任度, 专业支持和 25 天退款保证. 优惠券代码 SAVE10

龙飞行的详细图像
撰写人

经验丰富的内容撰稿人, 擅长 SSL 证书. 将复杂的网络安全主题转化为清晰, 引人入胜的内容. 通过有影响力的叙述, 为提高数字安全作出贡献.

Avatar of Sergiu Rosca
Technical Review by Sergiu Rosca

Sergiu Rosca is the core web developer behind SSL Dragon. He manages the technical infrastructure, platform performance, and backend integrations that keep the site running smoothly and securely. At SSL Dragon, Sergiu shares practical insights on web development, site optimization, and technical troubleshooting.

All SSL Dragon installation guides are tested on live server environments and undergo a strict peer-review process to ensure your infrastructure remains secure. Read our full Editorial Policy.