内容提要
宝塔面板9.1.0默认开启HTTPS,macOS导入其根证书baota_root.pfx时提示密码无效,疑为pfx格式兼容问题。解决办法:用OpenSSL从pfx中提取客户端证书为certificate.crt,密码为www.bt.cn;再双击导入钥匙串,将信任设为始终信任,重启浏览器即可正常访问。
延伸解读
问题根源:macOS 对 PFX 格式的兼容性差异
文章指出,宝塔面板 9.1.0 默认开启 HTTPS 后,其根证书 baota_root.pfx 在 Windows 上可正常导入,但在 macOS 上即使输入正确密码 www.bt.cn 也会提示密码无效。作者在论坛发现许多用户遇到相同情况,推测是 pfx 格式在 macOS 下的兼容问题。这说明问题并非密码错误,而是系统对证书格式处理方式不同,需要转换格式才能解决。
转换思路:用 OpenSSL 提取 PEM 格式证书
针对上述兼容问题,文章给出的方案是使用 OpenSSL 从 pfx 文件中提取客户端证书,生成兼容性更好的 certificate.crt 文件。命令中 -clcerts 表示只提取客户端证书,-nokeys 表示不提取私钥,输出为 PEM 格式。操作前可用 openssl version 确认系统已安装 OpenSSL,作者本机版本为 3.3.6。这一转换绕开了 macOS 直接导入 pfx 的障碍。
导入与信任设置:关键步骤与生效条件
生成 certificate.crt 后,需在访达中双击文件,系统会自动将其导入钥匙串访问。随后双击该证书,在「信任」设置中将「使用此证书时」改为「始终信任」。最后重启浏览器,宝塔面板的 SSL 证书即显示正常,不再提示不安全。文章强调,信任设置和浏览器重启是让更改生效的必要步骤,缺一不可。
Q&A
为什么在 macOS 上导入宝塔面板的根证书 baota_root.pfx 会提示密码无效?
因为 baota_root.pfx 文件在 macOS 上可能存在 pfx 格式兼容问题,导致即使输入正确密码 www.bt.cn 也提示密码无效。
如何用 OpenSSL 从 baota_root.pfx 中提取客户端证书?
在终端中运行命令:openssl pkcs12 -in baota_root.pfx -clcerts -nokeys -out certificate.crt,然后输入密码 www.bt.cn,即可提取客户端证书并保存为 certificate.crt。
提取出的 certificate.crt 文件在 macOS 上如何导入并信任?
双击 certificate.crt 文件,它会自动导入到钥匙串访问。然后双击该证书,在「信任」设置中将「使用此证书时」改为「始终信任」。
完成证书导入后还需要做什么才能正常访问宝塔面板?
需要重启浏览器,之后宝塔面板的 SSL 证书就会处于正常状态,不再提示不安全。
宝塔面板 9.1.0 版本默认开启 HTTPS 访问吗?
是的,在宝塔 Linux 面板 9.1.0 版本中,使用最新脚本全新安装会默认开启面板 HTTPS 访问选项。
OpenSSL 命令中 -clcerts 和 -nokeys 参数分别是什么意思?
-clcerts 表示只提取客户端证书(而不是 CA 证书或私钥);-nokeys 表示不提取私钥,仅提取证书。