Java jdk1.7.0_03附带了哪些密码套件,和/或如何为RMI安装提供密码套件?

Java jdk1.7.0_03附带了哪些密码套件,和/或如何为RMI安装提供密码套件?,java,ssl,encryption,Java,Ssl,Encryption,我一直在为这个问题绞尽脑汁,突然想到检查RMI服务器是否有可用的密码套件。因此,我在RMI注册表启动之前插入了以下代码: msg("trustStore: "+System.getProperty("javax.net.ssl.trustStore")); msg("trustStorePassword: "+System.getProperty("javax.net.ssl.trustStorePassword")); msg("keyStore: "+System.getProperty("

我一直在为这个问题绞尽脑汁,突然想到检查RMI服务器是否有可用的密码套件。因此,我在RMI注册表启动之前插入了以下代码:

msg("trustStore: "+System.getProperty("javax.net.ssl.trustStore"));
msg("trustStorePassword: "+System.getProperty("javax.net.ssl.trustStorePassword"));
msg("keyStore: "+System.getProperty("javax.net.ssl.keyStore")); 
msg("keyStorePassword: "+System.getProperty("javax.net.ssl.keyStorePassword"));
msg("rmi.server.hostname: "+System.getProperty("java.rmi.server.hostname"));msg("supportedCipherSuites: "+System.getProperty("javax.rmi.ssl.client.supportedCipherSuites"));
msg("enabledCipherSuites: "+System.getProperty("javax.rmi.ssl.client.enabledCipherSuites"));
msg("debug: "+System.getProperty("javax.net.debug"));
(其中,msg仅通过
System.out.println
发送数据)

…令我震惊的是,我发现“
supportedCipherSuites
”是
NULL

什么

我看遍了整个创作,“使用谷歌”,但还没有弄清楚如何用合适的密码套件填充我的安装。。。我不想找什么特别的东西,只要基本的普通东西就行了

Arg


p.S.RMI注册表从javax.net.debug输出到哪里?到处都找不到!谢谢……

您可以在中找到Oracle JRE 7中支持的密码套件列表:有两个表分别用于默认启用和禁用的密码套件

我不会太担心
System.getProperty(“javax.rmi.ssl.client.SupportedCipherSuite”)
返回
null
:这些系统属性是供您设置的,而不是供JRE/RMIAPI发布其当前状态。此外,在文档中没有提到这个系统属性
javax.rmi.ssl.client.enablediphersuites
。 如果要使用特定的密码套件,请设置
javax.rmi.ssl.client.enablediphersuites
,不要阅读它

获取
javax.net.ssl.*
属性不一定会告诉您实际使用的值是什么(请参阅)。例如,
null
javax.net.ssl.trustStore
仍将使用默认的信任库


对于
javax.net.debug
:由您设置和使用net/SSL API,而不是反过来。

您安装了无限强度加密策略文件吗?@markrottevel没有明确说明-我该怎么做?以前,有一个JSSE下载,但我今天没有找到。。。我想这是我提出的问题的一部分,“我应该如何用合适的密码套件填充我的安装?”-微笑-听起来你可以告诉我!默认情况下,Java安装会限制加密强度,因为奇怪的美国出口法(一直都是这样)。您可以在以下位置下载策略文件(顺便说一句:我不是说这就是解决方案),我不能证明您对“javax.rmi.ssl.client.enablediphersuites”的理解是错误的,但是如果它确实像您描述的那样被使用,那么它的名称就很愚蠢。应该是“setCipherSuites”,甚至只是“enableChipherSuites”——“ed”使其成为过去时。我觉得奇怪的是,创建JavaSSE的工程师竟然不知道后缀在英语中的正确用法和含义!也就是说,你的回答似乎是正确的,所以我把它标记为正确的-微笑-谢谢你的帮助。据我所知,“-ed”不仅仅是指过去时态或前仪式,还可以用作名词修饰语,几乎可以用作形容词(例如“某事是必需的”),尽管我认为“某事已启用”和“某事已启用”都可以。系统属性是设置,而不是方法;一个主动动词会暗示一个动作,而这不是系统属性要做的事情。也许这是一个值得问的问题:-)嗯,我更喜欢我的“放下d”解决方案-这样它就不是一个动作,像set,而是一个请求,如“请!”-微笑-男孩,如果我们是工程师,软件会更好!哦,等等,我们是,只是不是Java工程师!