- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个 web 应用程序,它有一个公共(public) https 区域和一个使用 SSL 重新协商使用客户端证书保护的私有(private) https。此配置在具有 APR 的 Tomcat 7 中正常工作(并非没有大量工作)。
现在我正在使用 Jetty,我已经尝试了所有方法,但我无法让它工作。
客户端证书对话框从不出现在浏览器中,而且我总是收到 HTTP 403 错误。
我的环境是:jdk 1.7.0.02jetty 9.0.0.M3 使用 m2e 从 Eclipse Helios 启动。 ( jetty :运行)
服务器似乎启用了 SSL 重新协商,按照指示对其进行测试 here ,所以我很确定 SSL 重新协商安全问题没有问题。
我已经覆盖了 ClientCertAuthenticator(以便能够调试)并创建了一个自定义的 LoginService,看起来 X509Cert 从未出现在请求中。
看起来 SSL 重新协商从未被触发,并且身份验证失败,因为请求中没有证书。
配置的 LoginService 只对每个验证返回 true。如果有人问我,我也可以发布它们,但重要的方法永远不会被调用。
如果我使用 needCLientCert 或 wantClientCert 应用程序工作正常,但浏览器会在公共(public)区域要求证书。
我的配置文件:
web.xml:http://pastebin.com/LQ3RcWY4
jetty .xml:http://pastebin.com/iE9xqcLq
jetty-context.xml:http://pastebin.com/rcSsBfRW
pom.xml( jetty 部分):http://pastebin.com/wBLATggq
我是否遗漏了一些明显的东西?我不知道。我搜索了很多并尝试了很多可能的配置,但是,没有运气。
最佳答案
http://docs.codehaus.org/display/JETTY/Jetty+Security
通过关闭 Jetty 中的 SSL 重新协商来解决。如果使用 JVM > 1.6u19 可以在连接器上调用 setAllowRenegotiate(true)
尽管如此,您还是向 BEAST 攻击开放了您的服务器。
关于java - 如何让 CLIENT-CERT SSL 重新协商在 Jetty 中工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14408958/
问题 调用 InitializeSecurityContext 时,我应将什么值传递给TargetName参数? 修改后的背景 我正在调用 InitializeSecurityContext 函数:
尝试让信号器启动并运行。我不断从服务器返回 2 个错误: GET negotiate url 返回 500 内部服务器错误 XMLHttpRequest 无法加载 http://localhost:1
我使用的是 Windows XP Pro SP3。我想在我的代码中使用 SSPI 函数。我编译了我的代码,没有错误。 我将安全包设置为用于协商,这是推荐的。 当我启动我的程序时,Negotiate 无
我正在尝试使用 C++ 和 QT 作为 GUI 来实现 Telnet 客户端。我不知道如何处理 telnet 协商。每个 telnet 命令都以 IAC 开头,例如 IAC WILL SUPPRESS
我正在使用 SignalR 2.0。在我的 VS 2012 上本地运行时一切正常。但是当我在 IIS 上发布站点时,它会中断。该站点已加载,但其中一个脚本返回 404 Not Found。脚本有点像。
我在 MS Azure 上配置了一个实例,并为域实现了 SSL 证书。当我测试性能(在 3G 上)时,我注意到 SSL 协商同时发生在两个请求上,这(不必要地)延长了过程并导致 0.6 秒的时间完成。
我有以下问题。 操作系统:CentOS 6.6 PHP:5.5 Curl: 7.43 编译 当我执行“curl -V”时,我得到以下信息: curl 7.43.0 (x86_64-unknown-li
有一个私有(private)网络服务器(支持 https),我需要经常在上面读取/设置一些信息。我做了一些java代码来自动完成。当我使用 Chrome 访问它时,第一次连接很慢(可能 5 秒),但持
我使用的是 IIS7,我们所有的文件都是通过 HTTPS 提供的。在查看瀑布 View (WebPageTest) 时,我注意到对每个文件进行 SSL 协商需要一些时间。有没有一种方法可以配置服务器或
我有一个简单的 SMTP 客户端,我正在尝试向其添加 TLS 支持。我不确定客户端发出“STARTTLS”命令后会发生什么。大多数来源(包括 RFC 本身)将其描述为 TLS session 的协商,
我一直在尝试在 IIS 托管的网站中使用 service worker 来缓存站点的一些静态内容。该站点是使用 Windows 身份验证的内部应用程序。我已经能够在没有太多麻烦的情况下注册和运行 se
我开始修补 Azure SignalR,并遇到了协商触发器问题。我关注了this微软官方指南: 这是我的代码: 本地.settings.json { "IsEncrypted": false,
Index.cshtml @{ ViewBag.Title = "Index"; } $(function () { var connection = $.connection('
Index.cshtml @{ ViewBag.Title = "Index"; } $(function () { var connection = $.connection('
我正在使用 openssl 正常连接到 SMTP 服务器(未加密),发送 STARTTLS 命令,协商 SSL 加密,然后与加密 session 交互。 这是我正在使用的命令(通过 telnet):
我正在为 iOS 进行 unix 服务器 ssh 模拟。在谈判过程中,我遇到了很多障碍,并且仍在与这些障碍作斗争。最新的一个是关于 SSH2_MSG_KEX_DH_GEX_REPLY 数据包数据,我在
我们有两个连接(作为 .NET/Windows 客户端)到 IBM MQ 端点(假设是非 Windows)。 我们使用 SSL,它由一对证书(客户端和服务器)支持并在 Windows 证书存储中正确标
我读到 ejabberd 建议使用 STARTTLS 协商来实现通信实体之间的安全连接。当我安装 ejabberd 时,默认情况下它带有 TLS 证书。 那为什么要买证书安装呢?既然我们有默认证书,从
您好,我正在尝试使用 JAVA 和 spring 设置 SSO。为此,我正在使用此文档:http://docs.spring.io/spring-security-kerberos/docs/1.0.
从阅读 Microsoft docs在使用 SignalR 进行身份验证时,使用不记名 token 进行身份验证的唯一方法似乎是将其发送到 WebSocket 连接上的查询字符串中。 在检查 Sign
我是一名优秀的程序员,十分优秀!