bg-tutorials

如何在Unifi Cloud Key上安装SSL证书

本教程为您提供了如何在 UniFi Cloud Key 上安装 SSL 证书的分步说明。Cloud Key 在 Java 密钥库之上运行 UniFi Network 应用程序,因此安装通过 SSH 完成:您需要从证书、私钥和 CA 证书链创建一个 PKCS#12 包,然后使用 Java keytool 工具将其导入 Cloud Key 密钥库,并重启 UniFi 服务。

在 UniFi Cloud Key 上生成 CSR 代码

证书签名请求(CSR)是一段编码文本,包含您的联系方式,例如域名和组织信息。每位申请者都必须生成一个 CSR 并将其发送给证书颁发机构(CA)进行验证,之后才能签发证书。对于 Cloud Key,CSR 中的公用名应为您用来访问控制器的主机名,例如 unifi.yoursite.com

您有两种选择:

您可以使用任何文本编辑器(例如记事本)打开 CSR 文件,并在向 SSL 供应商申请证书时粘贴该内容。请妥善保管配套的私钥:在第 3 步创建 PKCS#12 包时还需要再次使用它。一旦 CA 验证了您的请求并通过电子邮件发送 SSL 文件,就可以继续进行下面的安装步骤。

在 UniFi Cloud Key 上安装 SSL 证书

Cloud Key 从位于 /usr/lib/unifi/data/keystore 的 Java 密钥库提供 HTTPS 服务。默认情况下,该密钥库中保存的是一个自签名证书,别名为 unifi,密码为 aircontrolenterprise。要安装您自己的证书,需要替换该条目:将您的文件打包为 PKCS#12 归档文件,将其导入到相同的别名下,然后重启 UniFi 服务。整个操作需要通过 SSH 完成,因此请先连接到 Cloud Key(Gen1 的默认 SSH 用户为 root,Gen2 则使用您在设备接入时设置的管理员账户)。

步骤 1:准备您的 SSL 文件

检查您的邮箱,下载包含证书的 ZIP 压缩包并解压。根据您的 SSL 提供商不同,您可能会获得以下部分或全部文件:

  • 主 SSL 证书(您的服务器证书)。
  • 中间 SSL 证书。
  • 根 SSL 证书。
  • CA 证书包,这是一个已经包含根证书和中间证书的单一文件。

您还需要与 CSR 一起生成的私钥。如果您使用的是我们的 CSR 生成器,该私钥在当时就已提供下载。

步骤 2:将 SSL 文件复制到 Cloud Key

通过 SCP 或 SFTP 将文件上传到 Cloud Key,并放置在 /etc/ssl/private/ 目录下。请使用以下名称,以便与后续步骤中的命令相匹配:

  • 主证书命名为 /etc/ssl/private/cloudkey.crt
  • 私钥命名为 /etc/ssl/private/cloudkey.key
  • CA 证书包(根证书和中间证书)命名为 /etc/ssl/private/yourcaname.crt

注意:每个 PEM 文件在结尾行之后必须以换行符结束。证书的最后一行正是五个连字符,接着是 END CERTIFICATE 字样,再接五个连字符(—–END CERTIFICATE—–);请确保其后有换行。缺少末尾的换行符是导入出错的常见原因。

步骤 3:将证书打包为 PKCS#12 文件

将您的私钥、主证书和 CA 证书包合并为一个 PKCS#12 文件。别名必须unifi,因为这正是 UniFi 密钥库所期望的别名。请将 enteryourpassword 替换为您自己选择的密码,并记住它:在第 4 步中,您需要将相同的值作为源密码传递给 keytool。

openssl pkcs12 -export -in /etc/ssl/private/cloudkey.crt -inkey /etc/ssl/private/cloudkey.key -out /etc/ssl/private/cloudkey.p12 -name unifi -CAfile /etc/ssl/private/yourcaname.crt -caname root -password pass:enteryourpassword

此命令会生成 /etc/ssl/private/cloudkey.p12,其中包含私钥、您的证书以及证书链,全部保存在别名 unifi 下。

步骤 4:将 PKCS#12 文件导入到 Cloud Key 密钥库

将 PKCS#12 文件导入到位于 /usr/lib/unifi/data/keystore 的现有密钥库中。目标密钥库已经使用密码 aircontrolenterprise,因此目标密钥库密码和密钥密码必须保持为 aircontrolenterprise。源密码是您在第 3 步中为 PKCS#12 文件设置的密码。

keytool -importkeystore -deststorepass aircontrolenterprise -destkeypass aircontrolenterprise -destkeystore /usr/lib/unifi/data/keystore -srckeystore /etc/ssl/private/cloudkey.p12 -srcstoretype PKCS12 -srcstorepass enteryourpassword -alias unifi

如果 keytool 提示别名 unifi 已存在,这指的是默认的自签名条目。在提示时确认覆盖,或者先使用下面的命令删除旧条目,然后重新运行导入命令:

keytool -delete -alias unifi -keystore /usr/lib/unifi/data/keystore -storepass aircontrolenterprise

重要提示:请不要将密钥库密码修改为您自己的值。UniFi 服务被硬编码为使用 aircontrolenterprise 打开密钥库;如果您更改了该密码,控制器将无法读取证书,HTTPS 也将无法正常工作。

步骤 5:设置权限并删除临时文件

收紧 /etc/ssl/private/ 目录中文件的所有权和权限,确保私钥不会被所有人读取,然后删除不再需要的中间文件。请逐条运行以下命令:

chown root:ssl-cert /etc/ssl/private/*
chmod 640 /etc/ssl/private/*
rm /etc/ssl/private/cloudkey.p12

证书现在已保存在密钥库中,因此不再需要 PKCS#12 文件。如果您在此过程中还上传了 CSR 或 CA 文件,也可以将它们一并删除:

rm /etc/ssl/private/cloudkey.csr
rm /etc/ssl/private/yourcaname.crt

提示:在重启之前,您可以先备份密钥库,以便在需要时进行回滚。在 /usr/lib/unifi/data/ 目录下,使用 tar -cvf keystore-backup.tar keystore 进行归档。

步骤 6:使控制器主机名与证书匹配

为了让浏览器信任该证书而不出现名称不匹配的警告,请将控制器的主机名或 IP 设置为证书中的名称。在 UniFi Network 应用程序中,进入设置 > 系统(旧版本为:设置 > 控制器),将控制器主机名/IP设置为证书上的公用名,例如 unifi.yoursite.com。请确保该主机名在您的 DNS 中解析到 Cloud Key。

步骤 7:重启 UniFi 服务

新证书只会在 UniFi 服务启动时被读取,因此请重启服务以加载您的证书:

service unifi restart

在使用 systemd 的较新版 Cloud Key 固件上,等效命令为:

systemctl restart unifi

等待一分钟,让服务重新启动,然后在浏览器中重新加载控制器。恭喜,您的 SSL 证书现已成功安装在 UniFi Cloud Key 上。

测试您的 SSL 安装

安装证书后,请检查您的配置是否存在错误或漏洞,例如缺少中间证书或证书链不受信任。使用我们的SSL 检测工具可即时扫描并生成报告。由于 UniFi 控制器通常监听 8443 端口,请将检测工具指向完整地址,例如 unifi.yoursite.com:8443。您也可以通过命令行确认结果:

echo | openssl s_client -connect unifi.yoursite.com:8443 -servername unifi.yoursite.com 2>/dev/null | openssl x509 -noout -issuer -dates

此命令会打印证书的颁发者和有效期,让您确认 Cloud Key 正在提供您的证书,而不是之前的自签名证书。

常见问题

UniFi Cloud Key 上的 SSL 密钥库在哪里?

UniFi 密钥库是位于 /usr/lib/unifi/data/keystore 的 Java 密钥库。它保存着控制器通过 HTTPS 提供服务所使用的证书,存储在别名 unifi 下,并由默认密码 aircontrolenterprise 保护。

UniFi Cloud Key 上的默认密钥库密码是什么?

默认的密钥库密码是 aircontrolenterprise。请保持原样不要更改。UniFi 服务被硬编码为使用此密码打开密钥库,因此如果您更改了它,控制器将无法再读取您的证书。使用 keytool 导入时,请将其用作目标密钥库密码和密钥密码。

为什么导入证书后没有生效?

最常见的两个原因是密钥库密码错误和未重启服务。请确认您已使用密码 aircontrolenterprise 和别名 unifi 导入到位于 /usr/lib/unifi/data/keystore 的密钥库中,然后使用 service unifi restart 重启控制器。Cloud Key 只在启动时读取密钥库,因此新证书要重启后才会加载生效。

证书应该使用哪个别名?

别名必须为 unifi。在 openssl 中创建 PKCS#12 文件时,使用 -name unifi 选项来设置;在使用 keytool 导入时,使用 -alias unifi。如果您使用了不同的别名导入,控制器将继续提供旧的自签名证书。

如何在 Cloud Key 上重启 UniFi 服务?

通过 SSH 运行 service unifi restart。在使用 systemd 的较新固件上,请运行 systemctl restart unifi。您也可以从 Cloud Key 网页界面重启设备,但仅重启 UniFi 服务更快,且足以加载新证书。

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

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

龙飞行的详细图像
撰写人

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