问题标签 [client-certificates]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
apache - 从 mod_mono 中的 SSL 会话中检索客户端证书(在 Apache 2.2.2 (Red Hat) 中)
我正在尝试在 mod_mono 中设置一个 .NET Web 服务,该服务历史上只在 IIS 6/7 下运行。
大部分都运行良好,除了一个小细节:Web 服务应该在通过 HTTPS 建立连接时记录客户端证书。
我的 Apache 服务器使用 mod_ssl 运行,我可以使用客户端证书成功连接到服务。我已经在 IIS 7 中验证了我的 Web 服务,并且看到它能够获取客户端证书(如果存在)。
似乎ClientCertificate.IsPresent
总是在 mod_mono 中返回 false。一些谷歌搜索显示这在过去一直是一个问题(它只在 XPS 下正常工作)。我想相信我错误配置了一些东西:-)有人可以指出我正确的方向吗?
最好的问候, 埃米尔
asp.net - IIS 7.5 上托管的 ASP.NET 应用程序中的 WCF 客户端证书问题
我有一个 WCF 服务,我需要在 IIS 7.5 上托管的 ASP.NET Web 应用程序中调用它。此 WCF 服务使用客户端证书的传输安全性。我获得了一个客户端证书,我使用 mmc 在“本地计算机/个人”存储位置安装了该证书。.pfx 安装了 2 个其他证书(无私钥),它们是我的带有私钥的客户端证书的 CA。我在运行时分配证书,因为将来我可能会将其他证书用于相同的 Web 服务。
对于在 ApplicationPoolIdentity 下运行的 Web 应用程序,调用 Web 服务会引发带有内部 WebException(403 禁止)的 MessageSecurityException,就好像我根本没有通过客户端证书一样。如果配置需要,实际上不设置有效证书将通过 InvalidOperationException。如果我在管理员帐户下运行,则不会引发异常。我需要能够调用 ApplicationPoolIdentity 下的 web 服务。
编辑:我认为证书链可能是这里的问题......
到目前为止我已经尝试过:
- 在 MMC 中:MyCertificate -> All Tasks -> Manage Private Keys... 我授予 IIS_IUSRS 管理私钥的权限
- 为 C:\ProgramData\Microsoft\Crypto\RSA 添加了对 IIS_IUSRS 的读取访问权限
- 我使用了 System.Net 跟踪,并比较了 ApplicationPoolIdentity 和我的管理员帐户的日志。在“我们有用户提供的证书。服务器已指定 24 个颁发者。寻找与任何颁发者匹配的证书。 ”行之后,一切看起来都一样,直到下面的某个点。
ApplicationPoolIdentity 日志:
管理员帐户日志:
git - 通过 HTTPS 保存 Git 的客户端证书密码?
我正在尝试使用仅使用客户端证书通过 HTTPS 提供访问的远程 Git 存储库。我(终于......)让它工作了,但现在我遇到了一个小问题——每次我触摸遥控器时,Git 都会提示我输入证书密码。显然,这很快就会过时。
如果我使用 SSH,我可以按照官方指南提供带有ssh-agent
. 但是,AFAICT 没有办法让 Git(或 Curl,这是我认为 Git 在后台存根的库)使用 ssh-agent 来访问 HTTPS 连接的凭据。我也可以将这两者中gnome-keyring
的任何一个与密码短语联系起来,但我还没有在网上找到任何关于这两种方法的信息。
可以做到吗?我也许可以让服务器管理员打开 SSH 访问,我相信这会让我很清楚,但与此同时,如果我能得到它来保存 HTTPS 的密码短语会更容易。
apache - SSL 连接失败时显示自定义 ErrorDocument (SSLVerifyClient)
我已将 Apache2 配置为使用客户端证书身份验证:
它有效,我可以使用有效的客户证书访问我的网站。但是,当用户在没有安装 ClientCertificate 的情况下连接到它时,他们会从浏览器中得到一个令人困惑的错误。
(Chrome 说“ERR_SSL_PROTOCOL_ERROR”,Firefox 说“ssl_error_handshake_failure_alert”,Internet Explorer 只说“Internet Explorer 无法显示网页”。
当用户尝试在没有有效客户端证书的情况下访问时,我想向用户显示自定义 ErrorDocument。
问题是该站点没有返回 http 错误代码,而是中止了请求,所以我不能使用 Apaches 的“ErrorDocument”。
ssl_error_log 的最后一部分是这样的:
如何为此返回有效的 ErrorDocument?
security - .NET 4.0 客户端证书验证错误
我有以下代码
它适用于 .NET 3.5,但不适用于 .NET4.0。怪异吧?我使用的证书不在本地机器上验证(无链)。在 3.5 中,客户端证书的有效性与建立 SSL 无关,但是在迁移到 4.0 时,证书在用于 SSL 之前是经过验证的。(我可以在 CAPI2 事件日志中看到错误)。导致丑陋的 SecurityNegotiationException ...
堆栈跟踪:
在我们的安全架构中,证书是针对服务器上的 LDAP 目录进行验证的,因此客户端不需要知道完整的链。
问题是,我如何禁用这种新行为?
asp.net-mvc-3 - Asp.Net MVC 3 MembershipProvider 和 ClientCertificate
我正在考虑为我的网络应用程序编写自己的 MembershipProvider。人们通常不会注册,但会提供登录信息。那么会员制不是正确的吗?
我仍然会有一些角色,比如我可能无法让人们使用 ClientCertificate 而不是正常登录来进行身份验证。我仍然不希望他们通过成员身份验证(我可以使用的证书和数据库中有一个可识别的字段)并使用角色等。
MembershipProvider 是否可能仅用于原始登录身份验证而不是授权?
验证用户时似乎没有发生任何特别的事情,所以授权属性如何知道谁被授权?
php - 使用 php_curl 转发 SSL 客户端证书
我有以下设置:
有 2 台服务器需要 SSL 客户端证书。该证书用于身份验证。
用户(使用他的浏览器)将使用他的客户端证书向 Server1 发出请求。到目前为止,一切都很好。现在,我想做的是:Server1 将向 Server2 发出请求,解析该响应,并将其返回给用户。
Server1 使用 php_curl 执行请求。我希望 Server1 将(用户的)原始客户端证书传递给 Server2(它将验证用户,..)。Server1 然后“代表”用户发布。
这可能吗?
Apache 启用了 ExportCertData SSLOption。我已经尝试将以下标头添加到 curl 选项(认为这与使用客户端证书的 Apache 代理设置大致相同):
但没有运气。
wcf - 我可以在 WCF Web 服务上验证 x509 ClientCertificate 吗?
不知道 x509 是如何工作的。
如果我有一个需要对客户端进行身份验证和验证的 Web 服务,并且他使用 ClientCertificate,他是否可以向我发送一些我可以验证的信息?
我不创建网站本身,所以我不能确定他们会做对。我不想让别人对 Web 服务说“没关系,我给他做了客户认证,他很好”。
asp.net-mvc-3 - 在 Asp.Net MVC 中,身份验证模式还有哪些其他选项?
在 Web.config 文件中,有这条信息
我可以设置什么其他模式,我可以有多种模式吗?
一些用户可以使用用户名/密码登录,其他用户可以使用 x509 clientCert。
哪里有这方面的信息?
ruby-on-rails - 如何从机架应用程序访问 SSL 客户端证书
实际上——问题标题几乎说明了一切。在早期的 Rails (2.x) 中,我见过通过request.env
哈希访问客户端证书详细信息的代码。我的机架应用程序正在接收参数call
,env
但此数据不存在。我怎样才能访问它?