在尝试签署由我工作的公司创建的一些安装程序时,我遇到了一个错误,我无法解决.我使用相同的证书,已成功使用另一台机器(Win7)以相同的方式签署准相同的安装程序.无论如何,在运行CruiseControl.net的Windows Server 2008上,我尝试使用signtool.exe对安装程序进行签名,但它失败并出现以下错误:
The following certificates were considered:
Issued to: <our company>
Issued by: <some ca>
Expires: <is valid>
SHA1 hash: <...>
Issued to: <...>
Issued by: <...>
Expires: <...>
SHA1 hash: <...>
After EKU filter, 1 certs were left.
After expiry filter, 1 certs were left.
After Subject Name filter, 1 certs were left.
After Private Key filter, 0 certs were left.
SignTool Error: No certificates were found that met all the given criteria.
Run Code Online (Sandbox Code Playgroud)
我尝试将证书安装到不同的证书库,尝试使用不同版本的signtool.exe并尝试直接使用.cer文件,但没有区别.我在所有情况下都收到了上述错误.我尝试了以下命令行命令
signtool.exe sign /debug /n …Run Code Online (Sandbox Code Playgroud) 我正在尝试构建和归档应用程序.编译后,一个警告窗口出现,要求的" codesign wants to sign using key "my account Name" in your keychain"和按钮Always Allow,Deny并且Allow,当我按下Always allow或者allow,什么都不会发生,只有deny工作.
我Allow all applications to access this item在私钥信息中启用了" ",但它对我没用.
我正在使用VNC远程Mac(El Capitan)和Xcode 7.2.我没有使用任何第三方实用程序,我没有安装任何鼠标相关的应用程序.
我试过下面的链接
https://forums.developer.apple.com/thread/25092
我想知道这个问题背后的原因,我该如何解决?
最近,当我打算将我的APK签名发布到Play商店时,我得到了这个新选项:
按"签名帮助"链接,打开此网页:https: //developer.android.com/about/versions/nougat/android-7.0.html#apk_signature_v2
搜索更多,我发现了这个:
事实证明,它是Android 7.x的新验证,可以帮助使APK更安全,但也有点小.
我尝试使用这个新功能,就像在博客上写的那样,它确实使APK有点小.此外,正如它的编写,它仅适用于Android 7.x及更高版本(但您可以在同一个APK上使用这两种方法实际签名,让您也可以在旧版本的Android上安装该应用程序).
我不明白使用新的签名机制是否安全,以及他们对文档的确切警告.
我读过至少一个警告,我认为大多数开发人员都不需要特别照顾:
警告:如果您使用APK签名方案v2对应用程序进行签名并对应用程序进行进一步更改,则应用程序的签名将失效.出于这个原因,在使用APK签名方案v2签署您的应用程序之前使用诸如zipalign之类的工具,而不是之后.
我想我可以忽略这个警告,因为我只是让IDE本身使用默认的构建行为来构建APK.
我尝试使用所有3种方式签署应用程序:
似乎单独的v2不能安装在7.x之前版本的Android上,但其余的可以,而且似乎v2小于v1,而v1和v2比v1稍微大一点.
从旧签名切换到新签名是否安全(启用两个签名)?
用户升级会有什么问题吗?用户从v1升级到v2,或从v2(或v1和v2)升级到v1(如果出现问题) - 是否有任何问题?
我应该知道任何警告吗?我是对的,我可以忽略我提到的警告吗?
除了更好的安全性之外,使用v1和v2(一起)提供的签名是什么,我在v1上没有?
我的猜测是,只有Android 7,我们才能使用v2,这提供了一种拥有更小的APK的方法.这是真的吗?
除了signtool之外,我真的看不到一个很大的区别,你的数字证书需要不同的文件格式吗?
在有关代码签名的Android 文档中,我们可以读到:" 通过使用相同的证书签署多个应用程序并使用基于签名的权限检查,您的应用程序可以以安全的方式共享代码和数据. "
如何才能完成这样的代码共享?是否可以在运行时发布主应用程序和多个可交换插件然后发现它们?什么是源代码看起来像什么是"标准"意图的优势来自/到不同的APK包?
我们有一个需要以完全信任的方式运行的Java applet.
在开发期间和预发布测试期间,我们使用自签名证书对其进行签名(生产版本使用真实的代码签名证书进行签名).
但是,当我们尝试在OS X 10.8的早期阶段启动自签名applet时,我们再也不能选择允许它运行了.简单地禁用"允许"按钮:

如果我按"显示详细信息...",我可以选择"始终信任"证书,但这没有区别:

它与OS X Lion 10.7上的相同版本的Java JRE一起使用,因此我怀疑它是操作系统的问题,而不是JRE.
有没有解决方法?
我不希望使用真正的代码签名证书进行测试:使用真实的代码签名证书进行签名意味着我的公司声称applet是安全的并且应该是可信的.在我们测试它之前,我们很难断言.
我正在使用Apple Developer ID证书签署应用程序包.我需要使用命令行工具进行签名,因为我们的构建是自动化的,并且从我们的工具链运行.90%的时间使用此命令正常工作:
ws5:bin nick$ codesign -fs "Developer ID Application: <my name here>" MyApp.app
ws5:bin nick$ spctl --assess MyApp.app
ws5:bin nick$
Run Code Online (Sandbox Code Playgroud)
注意: MyApp.app不是我的真实应用程序名称,<my name here>并不是实际值.
因此,可能会有1到10次间歇性地失败并出现此错误:
MyApp.app: The timestamp service is not available.
Run Code Online (Sandbox Code Playgroud)
我已经验证了.app通过隔离机制,spctl --assess并通过压缩和下载签名文件 - 所以请不要说"你做错了,使用Xcode".我知道Apple并没有"正式"推荐使用codesign开发者ID证书(根据WWDC视频),但我们需要将其用于自动化,因为我们的应用程序是gcc和Qt构建输出的奇怪组合.
围绕此错误的最佳策略是重试,直到它再次运行?这就是我能想到的.
我们正在为Windows Phone 8开发一个公司应用程序.
我已按照Windows Phone公司应用程序分发中描述的每个步骤进行操作
这是我做的:
此时,当wp8手机试图在没有先安装AETX的情况下下载XAP文件时,手机会给出正确的错误消息:"在安装此应用程序之前,您需要添加XXXX公司帐户.请联系您公司的支持人员寻求帮助".
安装AETX后,当wp8手机尝试安装XAP文件时,手机会要求确认:"你想从XXXX安装App1吗?" 单击"安装"按钮后,没有任何反应.没有成功消息,没有错误消息,没有安装指示,并且应用程序未显示在应用程序列表中.
我也尝试通过电子邮件发送AETX和XAP文件(如果Internet Explorer或iis无法处理文件类型),结果相同.
我也试过为我们的公司中心应用做同样的事情,结果相同.
据我所知,公司中心应用程序只是另一个应用程序(当然是出于不同的目的),普通应用程序和中心应用程序可以相同的方式(通过网址或电子邮件等)分发,对吧?
怎么了?在这里找不到问题?有任何想法吗?
我创建了一个gradle项目,一切都很好,但是当我尝试上传到我的Maven存储库时,我得到以下Gradle错误:
FAILURE: Build failed with an exception.
* What went wrong:
Could not evaluate onlyIf predicate for task ':library:signArchives'.
> Unable to read secret key from file: C:\Users\ideal\pubring.gpg (it may not be a PGP secret key ring)
Run Code Online (Sandbox Code Playgroud)
我按照Sonatype的说明生成密钥,然后将其从生成的位置复制到上面列出的位置.我还发布了MIT密钥库的公钥.将gradle.properties在我的用户目录下的文件包含与钥匙串以下条目:
signing.keyId=MY_KEY_ID
signing.password=MY_KEY_PASSWORD
signing.secretKeyRingFile=C:\\Users\\ideal\\pubring.gpg
Run Code Online (Sandbox Code Playgroud)
这是在Windows平台上.我已经尝试搜索错误消息,但唯一出现的是相关插件的源文件.
我开发了一个带有Qt5的Mac应用,所以在Xcode之外.我希望GateKeeper允许我的应用程序在客户端的计算机上运行,而不是发出"无法打开,因为无法确认开发人员的身份"警告.
我已成功对该应用程序进行了数字签名,但GateKeeper仍然附带此投诉.我有一个Apple开发人员证书(我是团队代理),我的钥匙串说它是有效的.我还安装了两个Apple根证书.
我使用命令行实用程序codesign对app文件夹中的所有二进制文件进行数字签名,此外我还对app文件夹本身进行了数字签名.在所有情况下,协同设计的响应都是信息性的,并且没有显示错误.使用codesign我可以检查确实所有二进制文件都已签名,正在运行
$ codesign --verify --deep --verbose=2 MyApp.app
Run Code Online (Sandbox Code Playgroud)
显示所有二进制文件都已验证.此外,它报告:
MyApp.app:在磁盘上有效
MyApp.app:满足其指定要求
运行:
$ codesign -v --verbose=4 --display MyApp.app
Run Code Online (Sandbox Code Playgroud)
给
Executable =/Users/xxx/trunk/yyy/deploy/release/MyApp.app/Contents/MacOS/MyApp
Identifier = aaaa.MyApp
Format = bundle with Mach-O thin(x86_64)
CodeDirectory v = 20200 size = 12461 flags = 0x0 (无)散列= 616 + 3位置=嵌入
散列类型= sha1大小= 20
CDHash = d1c12c783dac0e8d9a2b749fb896b11558cec8b6
签名大小= 8532
授权=开发者ID应用程序:XXXXX
授权=开发者ID证书颁发机构
授权= Apple根CA
时间戳= 29 jul.2015 12; 04:40
Info.plist entries = 8
TeamIdentifier = YYYYY
Sealed Resources version = 2 …
code-signing ×10
macos ×3
android ×2
apk ×2
certificate ×2
applet ×1
cocoa ×1
gnupg ×1
gradle ×1
ios ×1
iphone ×1
java ×1
objective-c ×1
private-key ×1
signtool ×1
windows ×1
xap ×1
xcode ×1
xcode7.2 ×1