DefaultHttpClient httpClient = new DefaultHttpClient();
SSLContext ctx = SSLContext.getInstance("SSLv3");
TrustManager[] trustManagers = getTrustManagers("jks", new FileInputStream(new File("C:\\SSLKeyStore.ks")), "changeit");
ctx.init(null, trustManagers, new SecureRandom());
System.out.println("Context Protocol - " + ctx.getProtocol());
SSLSocketFactory factory = new SSLSocketFactory(ctx);
factory.setHostnameVerifier(SSLSocketFactory.ALLOW_ALL_HOSTNAME_VERIFIER);
ClientConnectionManager manager = httpClient.getConnectionManager();
manager.getSchemeRegistry().register(new Scheme("https", 443, factory));
HttpGet httpget = new HttpGet("https://localhost:8844/getData");
System.out.println("executing request" + httpget.getRequestLine());
HttpResponse response = httpClient.execute(httpget);
问题是当我启用'javax.net.debug=ssl'
时,在我看到的日志中,我的客户机正在使用TLSv1,而我的服务器正在通过SSLv3进行正确的通信。下面是原木的样子,
*** ClientHello, TLSv1
***
main, WRITE: TLSv1 Handshake, length = 149
main, READ: SSLv3 Handshake, length = 1353
*** ServerHello, SSLv3
当我打印支持的协议时,我看到“SSLv3,TLSV1”,因此我猜客户端显示的是更高版本的协议。
但这里的问题是我如何限制客户端只使用“SSLv3”。我还尝试设置https.protocols=“sslv3”
。但这也无济于事。
提前道谢。
维姬
找到了解决办法。
如果我子类SSLSocketFactory
并将createSocket
方法重写为“SetEnabledProtocols”
到'SSLv3'
。则通信与给定的完全相同,即客户端和服务器都使用SSLv3
进行通信。
下面是调试交换,
*** ClientHello, SSLv3
***
main, WRITE: SSLv3 Handshake, length = 149
main, READ: SSLv3 Handshake, length = 1353
*** ServerHello, SSLv3
问题内容: 我正在通过migrations.changeColumn函数在迁移中添加一个约束。 添加约束是可行的,但是由于您需要提供Possibly unhandled SequelizeDatabaseError: relation “myAttribute_unique_idx” already exists`。 (使用的数据库是postgres) 我也尝试过使用removeIndex 但是在
我正在编写一个Java TLS客户端。关于如何最安全地使用SSLContext类,我有几个问题,以便在可能的情况下使用TLS,并且只有在TLS不可用时才使用SSLv3。(附带说明:我看到文档中说TLS1.1和TLS1.2由于某些供应商产品的不兼容问题而对客户端禁用)。 是否仅使用SSL协议,或者是否使用TLS协议(如果它们可用)? 使用时,默认的协议是什么,它们的优先顺序是什么? 是否仅使用TLS
问题内容: 我正在用GRequests和lxml在Python 2.7.3中编写一个小脚本,这将允许我从各个网站收集一些可收集的卡价格并进行比较。问题是网站之一限制了请求的数量,如果我超过了它,则会发回HTTP错误429。 有没有一种方法可以限制GRequestes中的请求数量,以使我不超过我指定的每秒请求数量?另外-如果发生HTTP 429,如何让GRequestes在一段时间后重试? 附带说明
我正在用Python 2.7.3编写一个小脚本,其中包含GRequests和lxml,它将允许我从各种网站收集一些可收集的卡价格并进行比较。问题是其中一个网站限制了请求的数量,如果我超过它,就会发回HTTP错误429。 有没有办法在grequests中增加限制请求数,这样我就不会超过我指定的每秒请求数?还有——如果HTTP 429出现,我如何让GRequestes在一段时间后重试? 另一方面,他们
我目前正在制作一个游戏,我想限制每秒的帧数,但我对此有问题。这是我正在做的: 我通过每个帧执行的这个方法获取deltaTime: DeltaTime是有我所期望的值(大约0.012......到0.016...) 然后,我使用deltaTime通过睡眠窗口函数来延迟帧,如下所示: MAXFPS等于60,我乘以1000将秒转换为毫秒。虽然一切似乎都是正确的,但我的帧速率仍然超过了60帧(我的帧频约为
还有,既然可以指定要使用的安全提供程序,那么我应该使用哪个提供程序呢? 谢谢