Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何签署跨平台Java应用程序_Java_Cross Platform_Code Signing - Fatal编程技术网

如何签署跨平台Java应用程序

如何签署跨平台Java应用程序,java,cross-platform,code-signing,Java,Cross Platform,Code Signing,我有一个用Java编写的应用程序,将在MacOSX、Windows和Linux上发布。目前,我正在为每个平台打包应用程序,如下所示,但如果需要其他选择,我愿意对其进行更改: MacOSX:使用Eclipse,进入文件->导出…并选择MacOSX应用程序包 Windows:使用以下命令将jar文件捆绑到exe文件中 Linux:使用 问题是,我开始遇到程序不可信的问题。Google Chrome报告说,我的应用程序的测试版并非来自可靠的来源,Windows 8 Smartscreen filter

我有一个用Java编写的应用程序,将在MacOSX、Windows和Linux上发布。目前,我正在为每个平台打包应用程序,如下所示,但如果需要其他选择,我愿意对其进行更改:

MacOSX:使用Eclipse,进入文件->导出…并选择MacOSX应用程序包 Windows:使用以下命令将jar文件捆绑到exe文件中 Linux:使用 问题是,我开始遇到程序不可信的问题。Google Chrome报告说,我的应用程序的测试版并非来自可靠的来源,Windows 8 Smartscreen filter也同样如此。我的理解是,让这些安全措施信任我的应用程序的唯一方法是让应用程序签名,如果我真的想发布它,这是绝对必要的。然而,我发现了一些关于如何做到这一点的珍贵文档,其中大部分都是针对一个平台的,例如,告诉我有关Windows 8的签名

我的问题是:有没有一种方法可以对我的Java代码进行一次签名,并自动对我创建的可执行文件进行签名?或者我必须分别对每个可执行文件进行签名?如果是后者,我是否可以使用一个代码签名机构,或者我是否必须与不同的组分别对其进行签名?

根据来自的建议,我结束了Digicert的livechat,并向David询问了其中一些问题。以下是为清晰起见他不得不说的话:

我是验证Java代码还是最终产品可执行文件,还是两者都验证

你需要在最终产品上签字

我是购买一个证书并将其用于其他平台,还是单独购买

您可以购买代码签名证书,为您选择的平台下载它,例如Java jar文件,然后为另一个平台重新设置密钥,例如authenticode for Windows.exes,如果您愿意的话。重新设置密钥是免费的,只要证书有效,您可以根据需要多次为不同平台的证书重新设置密钥。当您重新设置密钥时,它不会使您以前的证书无效,只允许您为不同的平台下载另一个证书。您为digicert选择的平台正是最初为其设置关键帧的平台

我的平台目标之一是Linux。有Linux代码签名这样的东西吗?还是仅仅针对OSX和Windows

您可以在Linux中使用该证书,只需使用与Windows或OS X不同的工具对其进行签名即可

好了。至少从digicert和我认为其他代码认证公司,您可以免费购买一个证书并将其用于多个平台。然后验证您的最终产品;对原始jar文件进行身份验证是不必要的,除非您以这种方式分发它

然而,我发现如果你想通过Windows8,你必须获得更安全的代码签名

代码签名可以通过Windows8的Smartscreen过滤器吗

您需要EV代码签名证书才能通过Windows 8 Smartscreen筛选器。电动汽车的成本确实更高,但主要是由于其附带的额外验证。您可以对EV执行与对非EV证书相同的操作

为了更好地衡量,我询问如果要将证书发送到MacOSX应用商店或其他商店,是否需要证书

如果我想在Mac OS X应用商店或其他商店中分发此跨平台应用程序,我需要证书吗?如果是,是同一份证书吗

对于像Google的Apps store或Mac Apps store这样的商店,您需要让您的软件通过可信证书进行签名。但您可能希望查看特定的门店需求,以准确确定您需要什么


您可以使用为jar iteslf:-For.exe签名工具签名/a MyFile.exe。对于OS X,请尝试此codesign-v-f-s SIGNING\u ID\u APP-authentications YourApp.authentications YourApp.APP那么我需要同时对jar和.exe/.APP文件进行签名吗?我是否需要为每个产品使用不同的证书,或者我可以使用相同的证书?据我所知,如果您对最终产品进行签名,则不需要在内部对Jar进行签名,但即使您对Jar进行了签名,我也应该工作。您可以使用.pfx对.exe和.app进行签名。要获得此证书,您必须由OSX和Windows都信任的第三方颁发,或者自己生成。我不知道有哪家第三方会这样做……但也许这就是你想要找到的?经过一点研究,看起来一些可信的第三方证书颁发机构包括VeriSign、DigiCert、TC TrustCenter、Comodo、GoDaddy、GlobalSign和StartCom。来源:-这里是