对于 Windows 和 Macos 平台,像 StoreName 和 StoreLocation 这样的 X509Certificates 枚举是否足够?
Are X509Certificates enums like StoreName and StoreLocation sufficient for both Windows and Macos platforms?
我是 .Net 和 X509Certificates 的新手。我将使用 .net 核心编写一个应用程序来查找 Windows 和 Mac 的所有已安装证书。
我已经完成了这个例子 here。我想知道
- 这些枚举适用于 Windows 和 Macos?
- 这是否足以在两个平台上找到所有已安装的证书?
谢谢。
枚举 "work" 因为您可以传入它们。但是在 macOS 上,只有以下 StoreName 值会成功:
- 我的(如果应用了任何自定义信任规则,读写、删除将失败)
- 根目录(只读)
- 不允许(只读)
My
对应于 System.keychain
(LocalMachine
) 或 login.keychain
(CurrentUser
).
- Should that be sufficient on both the platforms to find all the installed certificates?
不,它们在任何平台上都不足以找到所有 个已安装的证书。
- 在 macOS 上可以创建任意数量的钥匙串,.NET 无法枚举它们。
- 在 Windows 上可以创建任意数量的自定义命名商店,.NET 无法枚举它们。
- 在两个系统上,东西可以安装在不同的用户下。
但枚举 "usable certificates" 的 My
商店或 "trusted certificates" 的 Root
商店在两个平台上都是 99% 的解决方案。
我是 .Net 和 X509Certificates 的新手。我将使用 .net 核心编写一个应用程序来查找 Windows 和 Mac 的所有已安装证书。 我已经完成了这个例子 here。我想知道
- 这些枚举适用于 Windows 和 Macos?
- 这是否足以在两个平台上找到所有已安装的证书?
谢谢。
枚举 "work" 因为您可以传入它们。但是在 macOS 上,只有以下 StoreName 值会成功:
- 我的(如果应用了任何自定义信任规则,读写、删除将失败)
- 根目录(只读)
- 不允许(只读)
My
对应于 System.keychain
(LocalMachine
) 或 login.keychain
(CurrentUser
).
- Should that be sufficient on both the platforms to find all the installed certificates?
不,它们在任何平台上都不足以找到所有 个已安装的证书。
- 在 macOS 上可以创建任意数量的钥匙串,.NET 无法枚举它们。
- 在 Windows 上可以创建任意数量的自定义命名商店,.NET 无法枚举它们。
- 在两个系统上,东西可以安装在不同的用户下。
但枚举 "usable certificates" 的 My
商店或 "trusted certificates" 的 Root
商店在两个平台上都是 99% 的解决方案。