更新:从install4j 11开始,macOS公证是跨平台的
我们正在考虑切换到扩展验证(EV)代码签名证书。
为了完全自动化 Apple 的公证,我们必须将构建机器切换为 Mac mini。
Ingo Kegel 对这个问题的评论似乎表明您可以通过
--win-keystore-password=<password>
命令行选项传递HSM密码。
正确吗?
install4j 帮助提到“不同平台”:
在 Windows 上,通常可以通过以下方式访问此类硬件令牌 Windows 密钥库。在不同的平台上,您必须选择 “硬件安全模块 PKCS #11 库”选项并配置 本机库,通过以下方式提供对 HSM 中密钥库的访问 PKCS #11 API。
有适用于 MacOS 的 PKCS #11 库吗?库选择对话框要求提供 DLL...
我可以确认我们已成功运行此程序(Windows EV 代码签名和 Apple Notarization 在 Mac mini 上均已自动化):
sys.ext.certDir
/usr/local/lib/libeTPkcs11.dylib
C:/Windows/System32/eTPKCS11.dll
Ingo Kegel 对这个问题的评论似乎表明你可以 通过 --win-keystore-password= 命令行传递 HSM 密码 选项。
是的,这是正确的。此选项在非 Windows 平台上也可用,也可用于 Windows 可执行文件的代码签名。
多平台构建仍然可以在单台机器(Mac mini)上进行吗?
是的,涉及公证的多平台构建只能在 macOS 上执行,因为 Apple 不允许除 macOS 之外的公证请求。
有适用于 MacOS 的 PKCS #11 库吗?库选择对话框要求 一个 DLL...
您的 HSM 需要一个库,这将是 Linux 上的 .so 文件或 macOS 上的 *.dylib 文件。我为文件选择器创建了一个问题,以根据当前平台显示正确的文件过滤器。
此类库是否可用于 macOS 取决于 HSM。这些库由 Java Cryptography Api (JCA) 加载,并且 install4j 在这方面没有特定于 Windows 的代码。
根据 Ingo Kegel 的回答,我快速浏览了常见的 HSM 令牌及其库支持。在这里编译仅供将来参考(我现在无法实际测试它)。
DigiCert 和 Sectigo 的 USB 令牌 (HSM) 似乎是 SafeNet eToken 的某个版本。
SafeNet 显然被金雅拓收购,而金雅拓又被泰雷兹收购。
DigiCert 和 Sectigo 都提供 SafeNet eToken 驱动程序和身份验证客户端的下载(适用于 Window/MacOS/Linux)。我在泰雷兹网站上找不到任何下载。
这篇关于使用 SafeNet eToken 5100 在 MacOS Sierra 上签署 PDF 文档的文章有一个显示驱动程序文件的屏幕截图:
/usr/local/lib/libeTPkcs11.dylib