bg-tutorials

如何在 macOS 服务器上生成 CSR

本教程将向您展示如何在 macOS 上生成 CSR(证书签名请求)。文中介绍了适用于所有当前 macOS 版本的两种方法:钥匙串访问(Keychain Access)证书助理向导(内置图形工具,无需额外软件),以及在终端中使用 openssl 命令行。此外,本文还保留了针对仍在 Monterey 上运行的少数安装环境的传统 macOS Server(Server.app)工作流程。

重要提示:Apple 已于 2022 年 4 月 21 日停止了 macOS Server 应用程序的开发。最终版本 5.12.2 仅支持运行至 macOS Monterey,Ventura、Sonoma、Sequoia 或更新版本均不再提供该应用。早在 2018 年发布的 5.7.1 版本中,大多数托管服务(网页、邮件、日历、联系人、维基、VPN、DHCP、DNS 等)就已从 Server.app 中移除,因此即使在 Monterey 上,”获取受信任的证书”向导也是唯一仍存在的与证书相关的工作流程。如果您使用的是 Ventura 或更新版本,请使用下方的钥匙串访问或 OpenSSL 方法。

方法一:使用钥匙串访问生成 CSR(当前 macOS 版本)

如果您已经使用其他工具生成了 CSR,请直接跳转至在 macOS 上安装证书部分。

钥匙串访问随每个版本的 macOS 一起提供,并包含一个证书助理,可生成标准的 PKCS #10 CSR 文件(扩展名为 .certSigningRequest)。私钥会同时在您的登录钥匙串中创建,因此永远不会离开您的 Mac。如果您不想使用命令行,这是最简单的方法。

步骤一:打开钥匙串访问

从应用程序 > 实用工具中打开钥匙串访问,或按 Cmd + Space 并在 Spotlight 中输入钥匙串访问。

在 macOS Sequoia、Sonoma 和 Ventura 上,尽管 Apple 较新的密码应用程序负责管理网站密码,但钥匙串访问仍然存在。证书助理功能仅存在于钥匙串访问中,因此这是您需要打开的应用程序。

步骤二:打开证书助理

在菜单栏中,依次选择钥匙串访问 > 证书助理 > 从证书颁发机构请求证书。

步骤三:填写您的详细信息

证书助理窗口会要求填写几个字段。请仅使用标准 ASCII 字符;公共 CA 会拒绝主题字段中包含的非拉丁字母。

  • 用户电子邮件地址:一个有效的联系电子邮件地址。公共 CA 会使用该地址发送签发通知。
  • 通用名称:您想要保护的完全限定域名,例如 www.example.com。对于通配符证书,请使用星号形式,例如 *.example.com。
  • CA 电子邮件地址:留空。您将通过 CA 的订购表单提交 CSR,而不是通过电子邮件。
  • 请求方式:选择保存到磁盘。勾选让我指定密钥对信息,以便在下一屏幕中选择密钥类型和大小。

点击继续。macOS 会提示您选择保存位置;请选择一个之后能轻松找到的文件夹(例如桌面)。默认文件名为 CertificateSigningRequest.certSigningRequest;您可以在保存前重命名。

步骤四:选择密钥对

在密钥对信息屏幕中,选择您希望 CA 绑定到证书的密钥类型和大小:

  • 密钥大小:2048 位(公共证书当前的最低要求)或 4096 位以获得更大的 RSA 密钥。较旧的 1024 位密钥会被所有公共 CA 拒绝,因此请不要选择它们。
  • 算法:RSA 以获得最大兼容性,或 ECC 以使用现代椭圆曲线密钥(体积更小、速度更快,且客户端支持广泛)。

点击继续。证书助理会生成密钥对,将私钥存储在您的登录钥匙串中,将 CSR 写入您选择的文件,并显示确认屏幕。点击完成。

CSR 现已准备好提交给您的 CA。您可以在文本编辑中打开 .certSigningRequest 文件以查看其内容;该文件以 -----BEGIN CERTIFICATE REQUEST----- 开头,以 -----END CERTIFICATE REQUEST----- 结尾。请复制整个代码块(包括这些头部和尾部行),并在购买过程中将其粘贴到订单表单中。

在提交之前,您可以使用我们的CSR 解码器解码该请求,以确认各字段是否正确。

方法二:在终端中使用 OpenSSL 生成 CSR

如果您更喜欢使用命令行,或者需要在一个请求中包含多个主机名的主题备用名称(SAN)列表,可以在终端中使用 openssl 工具生成 CSR。每个现代版本的 macOS 都在 /usr/bin/openssl 中内置了 LibreSSL 命令,该命令支持与 Linux 上相同的 openssl req 语法。如果您更倾向于使用 OpenSSL 本身,可以通过 brew install openssl@3 进行安装;安装后的二进制文件位于 /opt/homebrew/opt/openssl@3/bin/openssl(Apple 芯片)或 /usr/local/opt/openssl@3/bin/openssl(Intel 芯片)。

步骤一:打开终端

从应用程序 > 实用工具中打开终端,或按 Cmd + Space 并输入终端。切换到一个之后能轻松找到的文件夹,例如桌面上的工作目录:

mkdir -p ~/Desktop/csr
cd ~/Desktop/csr

步骤二:生成私钥和 CSR

运行以下命令。该命令会一步生成一个新的 2048 位 RSA 密钥(yourdomain.key)以及相匹配的 CSR(yourdomain.csr),并以内联方式提供主题和主题备用名称,因此 OpenSSL 不会中途停下来提问:

openssl req -new -newkey rsa:2048 -nodes 
-keyout yourdomain.key 
-out yourdomain.csr 
-subj "/C=US/ST=YourState/L=YourCity/O=YourCompany/CN=yourdomain.com" 
-addext "subjectAltName=DNS:yourdomain.com,DNS:www.yourdomain.com"

各部分的作用如下:

  • -newkey rsa:2048 生成一个新的 2048 位 RSA 密钥。若需要更大的密钥,可使用 rsa:4096,或切换为 ECDSA(见下文)。
  • -nodes 使私钥保持未加密状态,以便您的 Web 服务器在启动时可以读取它,而无需输入密码短语提示。
  • -keyout 和 -out 分别命名私钥和 CSR 文件。
  • -subj 提供证书主题。请在此处填写您真实的公司名称、州/省和城市,而不是占位符。CN(通用名称)是您的主域名。
  • -addext “subjectAltName=…” 列出该证书必须覆盖的每个主机名。公共 CA 会根据 SAN 列表进行验证,因此始终要将通用名称也包含在其中。

请将所有出现的 yourdomain.com 替换为您的实际域名。如需覆盖额外的主机名,可在 SAN 列表中用逗号分隔添加,例如 DNS:api.yourdomain.com。对于通配符证书,请同时包含通配符和裸域名:DNS:*.yourdomain.com,DNS:yourdomain.com。C 字段请使用官方的两字母国家代码(例如 US、GB、DE)。

如果您更倾向于使用 ECDSA 密钥(体积更小、速度更快,且 P-256 广泛受到支持),可以改用如下方式生成密钥和 CSR:

openssl req -new -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -pkeyopt ec_param_enc:named_curve -nodes 
-keyout yourdomain.key 
-out yourdomain.csr 
-subj "/C=US/ST=YourState/L=YourCity/O=YourCompany/CN=yourdomain.com" 
-addext "subjectAltName=DNS:yourdomain.com,DNS:www.yourdomain.com"

如果您更希望逐一回答各字段的提示,可以运行不含 -subj 和 -addext 的简化形式:

openssl req -new -newkey rsa:2048 -nodes -keyout yourdomain.key -out yourdomain.csr

随后 OpenSSL 会依次询问以下各字段:

  • 国家名称(2 字母代码):您所在国家的 ISO 3166-1 alpha-2 代码,例如 US。
  • 州或省名称:您所在州或省的全称,而不是缩写。
  • 城市名称:您的组织注册所在的城市。
  • 组织名称:对于 OV 和 EV 证书,填写您公司的完整法定名称。对于 DV 证书,该值不会被验证,但也不要直接按回车:OpenSSL 会填入其配置中定义的默认值,而标准的 openssl.cnf 文件中默认值为 Internet Widgits Pty Ltd,这会出现在您的 CSR 中。请输入一个单独的句点(.)以使该字段真正保持为空。
  • 组织单位名称:已被 CA/浏览器论坛弃用。按回车键留空即可。
  • 通用名称:您想要保护的完全限定域名,例如 www.yourdomain.com,或对于通配符证书使用 *.yourdomain.com。
  • 电子邮件地址:一个有效的联系电子邮件,或按回车跳过。
  • 当被要求输入质询密码和可选的公司名称时,按回车键使两者均保持为空。公共 CA 会忽略这些字段。

请注意,以上提示中没有一个会询问 SAN。您仍可以通过在命令行中保留 -addext 而仅省略 -subj 来获得 SAN:OpenSSL 会以交互方式询问主题,同时仍会写入 SAN 扩展。否则,请使用上文完全内联的形式,或使用 OpenSSL 配置文件构建 CSR。

步骤三:验证并提交 CSR

在将 CSR 发送给 CA 之前,请在本地解码它,以确认主题和 SAN 列表与您预期的一致:

openssl req -noout -text -verify -in yourdomain.csr

检查 Subject 和 X509v3 Subject Alternative Name 行是否正确,并确认签名检查返回 verify OK。您也可以使用我们的CSR 解码器在线解码该 CSR。

在文本编辑中打开 .csr 文件(或使用 cat yourdomain.csr 打印出来),并复制整个代码块,包括 -----BEGIN CERTIFICATE REQUEST----- 和 -----END CERTIFICATE REQUEST----- 行。在购买过程中将其粘贴到订单表单中。请将匹配的 yourdomain.key 文件安全地保存在同一台机器上;该文件绝不能发送给 CA 或与他人共享。

方法三:传统 macOS Server(Monterey 上的 Server.app)

如果您仍在 Monterey 上运行 macOS Server 5.12.2,内置的获取受信任的证书向导会生成 CSR,并将匹配的私钥存储在系统钥匙串中。Server 5.12.x 需要 macOS Monterey(更早版本如 5.11 支持 Big Sur)。在 Ventura 及更新版本上,该应用程序不可用;请改用上文中的钥匙串访问或 OpenSSL 方法。

步骤一:启动 macOS Server

打开访达 > 应用程序 > Server。

步骤二:选择目标服务器

  • 此 Mac(您的服务器名称):在本机生成 CSR。输入您的管理员用户名和密码,然后点击允许。
  • 其他 Mac(您的服务器名称):在远程 Mac 上生成 CSR。输入其主机名或 IP 地址以及管理员凭据,然后点击允许。

步骤三:开始生成 CSR

  • 在左侧窗格的服务器下,选择证书。
  • 找到现有的自签名证书。它适用于测试和私有网络,但不受公共浏览器信任。
  • 点击页面底部的 + 按钮,选择获取受信任的证书,然后点击下一步。

步骤四:填写 CSR 详细信息

  • 主机名(CN):要保护的完全限定域名,例如 www.yoursite.com,或对于通配符证书使用 *.yoursite.com。
  • 联系电子邮件地址:一个有效的电子邮件地址。
  • 组织(O):对于 OV 和 EV 证书,填写您公司的完整法定名称。对于 DV 证书,留空即可。
  • 组织单位(OU):已被 CA/浏览器论坛弃用。留空即可。
  • 城镇/城市(L):您的组织注册所在的城市。
  • 州/省(ST):您所在州或省的全称。
  • 国家(C):从列表中选择您所在的国家。

检查您填写的信息,点击下一步,然后将 CSR 文件保存到磁盘。私钥会保留在系统钥匙串中,并在证书安装过程中需要用到。

提交 CSR 以及后续流程

在订购 SSL 证书时,提交 .csr 文件的内容(或从 Server.app 中保存的文件)。CA 验证您的请求并签发证书后,请按照我们的指南如何在 macOS 上安装 SSL 证书导入证书并配置您的 Web 服务器。DV 证书通常在几分钟内签发;OV 和 EV 证书可能需要一到五个工作日。

立即订购 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.