【问题标题】:how to use client certificates to access website如何使用客户端证书访问网站
【发布时间】:2016-02-28 13:28:33
【问题描述】:
我的网站托管在 IIS 上。我的主要问题是我只希望安装了特定证书的用户能够访问该站点。我尝试按照一些教程进行操作,但找不到同时涵盖服务器端和客户端的任何人,因为我无法让它工作。
我对主要问题有一些疑问:
我应该使用哪种证书(IIS 7.5 中的域/自签名)?我确实可以访问 Active Directory 证书服务,我可以在其中创建其他类型的证书 (CA),但问题是在尝试将它们导入到我的 IIS 时(“证书不能用作 ssl 服务器证书”)
我想使用 CA 证书,但是在使用 IIS 时可以吗?或者我是否需要编写所有代码来检查用户是否拥有正确的证书?
为网站创建证书时(例如通过 IIS)。如何创建服务器证书信任的用户证书?
正如您现在可能注意到的那样,我不确定如何完成所有这些操作,并且真的需要一些帮助..
【问题讨论】:
标签:
iis
ssl
https
certificate
【解决方案1】:
- 服务器应使用 SSL 服务器证书。此证书必须在
Extended key usage 中具有 Server Authentication 扩展名。服务器证书应具有 SAN 扩展名(主题备用名称),服务器域名作为 DNS 名称(即 somesite.com)
- 必须将 CA 证书导入服务器和客户端计算机上的受信任根存储(最好是本地计算机)。
- 客户端证书应在
Extended key usage 中包含Client Authentication 扩展名。
所有 EndEntity(客户端和服务器)证书都应包含 CRL distribution point,其中包含 CA 颁发的 CRL 的 URL。 CRL 必须可供客户端和服务器访问,并且应该始终有效。
您可以使用XCA 进行培训。它有一个漂亮的 GUI,默认情况下它有 CA、SSL 服务器和 SSL 客户端证书的模板。然后,您可以在 Active Directory 证书服务中模仿这些证书。文档和一些指南可以在here找到。