[更新] Oracle 刚刚修改了加密路线图 ( https://www.java.com/en/jre-jdk-cryptoroadmap.html ),他们将不会弃用 SHA-1 进行代码签名:2017-03-14目标日期从 2017-04-18 更改为 2017-07-18。所有 SHA-1 使用的范围缩小:只有 TLS 会受到影响,*此时代码签名不会受到影响*。
这不会以任何方式影响我在下面收到的很好的答案,因为毫无疑问,它将在未来适用。
--
原帖:
尝试在 JRE 9 ea 153 上运行我们的 Webstart 部署的 Java 应用程序,我得到以下弹出窗口:
进一步查看详细信息,我看到证书在一段时间内仍然有效:
,因此,我想知道弃用 SHA1 是否是原因?
这听起来确实像是一项符合 (others' in the industry) 的政策,但该消息听起来对新手并不友好(尤其是当它面向最终用户时),所以我很疑惑。
我在寻找路线图。 This是我发现的,但我不确定我是否正确解释了这一段:
在默认包含在 Oracle 的 JDK 中的根锚定的证书链中禁用 SHA-1;本地或企业 CA 不受影响。时间戳在 2017-01-01 之前的签名代码不受影响。
作为上述失败的原因。非常感谢您的确认。
FWIW,我们的证书是由 CA 颁发的,我认为它与“企业”CA 不同。
谢谢。
最佳答案
如果该签名的 Jar 旨在供最终用户使用,则 2017 年通过 SHA1 签名的软件包将无法使用。
很久以前就宣布了逐步淘汰 SHA1。 唯一的方法是安装本地 CA 或其他东西,但这不会发生在最终用户机器上(也不应该)。
要为您的最终用户签署一个 Jar,您需要一个来自您的 CA 的新的有效 SHA-256 证书,并在 2016 年 12 月 31 日之后重新签署任何用旧证书签署的 Jar。 无论如何,您的证书将在几个月后过期。
您是否必须对 jar 进行双重签名取决于您所针对的最旧的 JVM 版本。据我所知,>=1.4.2 的任何东西都支持 SHA-256。如果你想针对更旧的版本(见鬼,当我开始编程时,java 1.5 已经被认为是旧的)你需要像双重签名这样的东西。可以找到更多信息here和 here
“How to dual sign a jar”可能是一个新话题,因为我认为它与这个问题几乎没有关系。
关于Java 9 弃用 SHA1 证书,还是其他问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41878258/
我试图在一个项目中使用rake,如果我把所有东西都放到Rakefile中,它会很大并且很难读取/找到东西,所以我试着将每个命名空间放在lib/rake中它自己的文件中,我添加了这个到我的rake文件的顶部:Dir['#{File.dirname(__FILE__)}/lib/rake/*.rake'].map{|f|requiref}它加载文件没问题,但没有任务。我现在只有一个.rake文件作为测试,名为“servers.rake”,它看起来像这样:namespace:serverdotask:testdoputs"test"endend所以当我运行rakeserver:testid时
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
我正在寻找执行以下操作的正确语法(在Perl、Shell或Ruby中):#variabletoaccessthedatalinesappendedasafileEND_OF_SCRIPT_MARKERrawdatastartshereanditcontinues. 最佳答案 Perl用__DATA__做这个:#!/usr/bin/perlusestrict;usewarnings;while(){print;}__DATA__Texttoprintgoeshere 关于ruby-如何将脚
尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
由于fast-stemmer的问题,我很难安装我想要的任何rubygem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=
我真的很习惯使用Ruby编写以下代码:my_hash={}my_hash['test']=1Java中对应的数据结构是什么? 最佳答案 HashMapmap=newHashMap();map.put("test",1);我假设? 关于java-等价于Java中的RubyHash,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/22737685/
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub
我正在尝试在Ruby中复制Convert.ToBase64String()行为。这是我的C#代码:varsha1=newSHA1CryptoServiceProvider();varpasswordBytes=Encoding.UTF8.GetBytes("password");varpasswordHash=sha1.ComputeHash(passwordBytes);returnConvert.ToBase64String(passwordHash);//returns"W6ph5Mm5Pz8GgiULbPgzG37mj9g="当我在Ruby中尝试同样的事情时,我得到了相同sha
我正在尝试使用boilerpipe来自JRuby。我看过guide从JRuby调用Java,并成功地将它与另一个Java包一起使用,但无法弄清楚为什么同样的东西不能用于boilerpipe。我正在尝试基本上从JRuby中执行与此Java等效的操作:URLurl=newURL("http://www.example.com/some-location/index.html");Stringtext=ArticleExtractor.INSTANCE.getText(url);在JRuby中试过这个:require'java'url=java.net.URL.new("http://www