第三方要求我设置一个 FTPS 站点供他们连接。
我在 IIS 10 上执行此操作。
第三方客户端需要使用与 FTP 用户绑定的客户端证书。
我已经对此进行了测试,并使用自签名客户端证书使一切正常工作。
但是,还要求客户端证书由受信任的 CA 签名。
我熟悉使用 win-acme 生成服务器证书 - 但我不确定是否可以使用 win-acme 生成客户端证书[未绑定到域]。
我曾尝试使用 win-acme 生成客户端证书,但是,由于证书是与用户名而不是域名绑定的,所以我看不到验证证书的方法。
如何获取可与 FTP 用户绑定并由第三方用于连接到 FTP 站点的可信客户端证书?
非常感谢您的帮助。
通常意义上(即全球范围内)的“可信”在这里没有用。
就“网络”CA 而言,它仅对电子邮件 (S/MIME) 证书有用,该证书与各种随机实体交互(并且首先基于全球身份),因此拥有预先存在的集合受信任的 CA 在那里很有用 - 但它们与 TLS 客户端证书有不同的范围和要求。对 TLS 客户端证书有相同的要求是没有意义的,因为:
客户端软件没有理由关心自己的客户端证书的信任;它仅由服务器验证。
作为这一点的扩展,处理证书的系统集是已知的且有限的,因此由预安装的 CA 颁发证书几乎没有什么好处 – 将 CA 部署到一 (1) 个系统非常容易需要它的系统。
该证书将代表一种身份类型(Windows 域用户),该身份在该域之外毫无意义,并且无法由外部 CA 进行验证。
如果 CA 无法证明身份,则无法为其颁发证书。无论是否通过 ACME 完成,外部 CA 都无法使用您的内部 AD 用户名颁发证书。
因此,您应该成为验证者,即您应该创建一个内部 CA(例如,使用 Active Directory 证书服务)并使 IIS 服务器“信任”该 CA(手动或通过 GPO)。
使用 AD CS 是一个简单的选择,因为它已经附带了 AD 软件喜欢的正确模板;证书颁发已与Windows账户绑定;但我非常确定可以将任何随机证书映射到任何 Active Directory 帐户,因此如果您愿意,您可以使用 XCA 或 Smallstep 或 Easy-RSA。
(在你问之前,不,对客户端和服务器证书使用不同的 CA 绝对没有任何问题 - 它不会破坏 TLS。)