OS X Server:“访问控制”可能会阻止证书身份与服务器服务配合使用

将证书身份安装到系统钥匙串后,该证书会显示在 Server App 或 Server Admin 中。但是,服务器可能无法使用选中的证书,且使用所选证书的连接可能无法完成。

具体症状

OS X Server

从 Server App 的“证书”面板中选择证书后,下拉菜单可能会切换至以前设置的证书或切换至“自定”。尝试使用该证书的连接可能不起作用。

Lion Server

在 Server app 的“设置”面板中设置证书后,可能改为显示“自定”设置。点按“编辑”按键以显示自定 SSL 证书设置后,您可能注意到除 Web 外所有服务均已设为使用新证书。如果您尝试将证书设为用于 Web,可能暂时显示为已更改,然后意外地改回“无”。尝试使用该证书的连接可能不起作用。

Mac OS X Server v10.6

从 Server Admin 的“证书”面板中,您可以看到服务器可用的证书列表,其中包括新导入的证书。将服务器设为使用此证书时,您可能会看到将保留此设置,但是尝试使用此证书的连接可能不起作用。

如何解决此问题

导入系统钥匙串的证书可能有“访问控制”设置,这会阻止服务器访问身份专用密钥组件。需要将专用密钥导出至“/etc/certificates”时,此限制会阻止此行为。

使用钥匙串访问删除这些限制,并允许要导出的专用密钥用于服务器服务。

  1. 从“/应用程序/实用工具”中打开“钥匙串访问”。
  2. 从“钥匙串”面板中选择“系统”钥匙串。
  3. 从左下方的“种类”面板中选取“证书”。
  4. 点按已导入证书旁边的箭头。
  5. 连按“专用密钥”。
  6. 切换到“访问控制”标签。
  7. 选择“允许所有应用程序访问此项目”选项。
  8. 点按“存储更改”并在系统提示时以本地管理员身份鉴定。
  9. 重新启动电脑。

通过查看目录“/etc/certificates”,您可以查看便于服务器服务使用的已安装证书列表。证书的命名方案就是使用证书的常用名称,后接证书中的 SHA1 哈希。每个有效的证书身份都应有四个文件:证书信任链 (chain.pem)、证书 (cert.pem)、密钥 (key.pem) 和已连接含有专用密钥的证书 (concat.pem)。如果丢失了四个组件中的任意一个,服务将无法与相应的证书配合使用。

发布日期: