标签: code-signing

由于私钥过滤器,使用signtool进行代码签名失败

在尝试签署由我工作的公司创建的一些安装程序时,我遇到了一个错误,我无法解决.我使用相同的证书,已成功使用另一台机器(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)

windows code-signing certificate signtool private-key

16
推荐指数
2
解决办法
1万
查看次数

代码符号想要使用密钥签名 - 不允许或始终允许但拒绝工作

我正在尝试构建和归档应用程序.编译后,一个警告窗口出现,要求的" 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

https://apple.stackexchange.com/questions/212622/keychain-wont-let-copy-passwords-after-10-11-1-update

我想知道这个问题背后的原因,我该如何解决?

在此输入图像描述

iphone code-signing objective-c ios xcode7.2

16
推荐指数
3
解决办法
2万
查看次数

在使用新的"APK Signature Scheme v2"时,我们应该了解哪些预防措施和警告?

背景

最近,当我打算将我的APK签名发布到Play商店时,我得到了这个新选项:

在此输入图像描述

按"签名帮助"链接,打开此网页:https: //developer.android.com/about/versions/nougat/android-7.0.html#apk_signature_v2

搜索更多,我发现了这个:

http://android-developers.blogspot.co.il/2016/11/understanding-apk-packaging-in-android-studio-2-2.html

事实证明,它是Android 7.x的新验证,可以帮助使APK更安全,但也有点小.

我尝试使用这个新功能,就像在博客上写的那样,它确实使APK有点小.此外,正如它的编写,它仅适用于Android 7.x及更高版本(但您可以在同一个APK上使用这两种方法实际签名,让您也可以在旧版本的Android上安装该应用程序).

问题

我不明白使用新的签名机制是否安全,以及他们对文档的确切警告.

我读过至少一个警告,我认为大多数开发人员都不需要特别照顾:

警告:如果您使用APK签名方案v2对应用程序进行签名并对应用程序进行进一步更改,则应用程序的签名将失效.出于这个原因,在使用APK签名方案v2签署您的应用程序之前使用诸如zipalign之类的工具,而不是之后.

我想我可以忽略这个警告,因为我只是让IDE本身使用默认的构建行为来构建APK.

我尝试了什么

我尝试使用所有3种方式签署应用程序:

  • V1
  • V2
  • v1和v2(一起放在一个APK中)

似乎单独的v2不能安装在7.x之前版本的Android上,但其余的可以,而且似乎v2小于v1,而v1和v2比v1稍微大一点.

问题

  1. 从旧签名切换到新签名是否安全(启用两个签名)?

  2. 用户升级会有什么问题吗?用户从v1升级到v2,或从v2(或v1和v2)升级到v1(如果出现问题) - 是否有任何问题?

  3. 我应该知道任何警告吗?我是对的,我可以忽略我提到的警告吗?

  4. 除了更好的安全性之外,使用v1和v2(一起)提供的签名是什么,我在v1上没有?

  5. 我的猜测是,只有Android 7,我们才能使用v2,这提供了一种拥有更小的APK的方法.这是真的吗?

android code-signing apk

16
推荐指数
1
解决办法
1926
查看次数

signcode.exe和signtool.exe之间的主要区别是什么?

除了signtool之外,我真的看不到一个很大的区别,你的数字证书需要不同的文件格式吗?

code-signing

15
推荐指数
1
解决办法
5645
查看次数

Android:如何在使用相同证书签名的项目之间共享代码

在有关代码签名的Android 文档中,我们可以读到:" 通过使用相同的证书签署多个应用程序并使用基于签名的权限检查,您的应用程序可以以安全的方式共享代码和数据. "

如何才能完成这样的代码共享?是否可以在运行时发布主应用程序和多个可交换插件然后发现它们?什么是源代码看起来像什么是"标准"意图的优势来自/到不同的APK包?

android code-signing certificate apk

15
推荐指数
2
解决办法
4966
查看次数

在OS X Mountain Lion上具有自签名证书的Java小程序

我们有一个需要以完全信任的方式运行的Java applet.

在开发期间和预发布测试期间,我们使用自签名证书对其进行签名(生产版本使用真实的代码签名证书进行签名).

但是,当我们尝试在OS X 10.8的早期阶段启动自签名applet时,我们再也不能选择允许它运行了.简单地禁用"允许"按钮:

禁用

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

在此输入图像描述

它与OS X Lion 10.7上的相同版本的Java JRE一起使用,因此我怀疑它是操作系统的问题,而不是JRE.

有没有解决方法?

我不希望使用真正的代码签名证书进行测试:使用真实的代码签名证书进行签名意味着我的公司声称applet是安全的并且应该是可信的.在我们测试它之前,我们很难断言.

java macos applet code-signing osx-mountain-lion

15
推荐指数
2
解决办法
2万
查看次数

错误,"时间戳服务不可用." 在Mac OS X 10.8上使用codesign时

我正在使用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构建输出的奇怪组合.

围绕此错误的最佳策略是重试,直到它再次运行?这就是我能想到的.

macos code-signing

15
推荐指数
5
解决办法
7188
查看次数

无法在Windows Phone 8上安装公司应用程序

我们正在为Windows Phone 8开发一个公司应用程序.

我已按照Windows Phone公司应用程序分发中描述的每个步骤进行操作

这是我做的:

  • 注册公司帐户
  • 从Symantec获得了企业证书.
  • 导出的PFX文件带有私钥
  • PFX生成的注册令牌(AETX文件).
  • 开发的应用程序,使用visual studio构建并生成xap文件.(将其命名为App.xap)
  • 预编译的托管程序集,并使用BuildMDILXap.ps1 powershell脚本将其与证书签名.(所有消息都表示成功).
  • 在我们的Web服务器上托管AETX和签名的XAP文件.

此时,当wp8手机试图在没有先安装AETX的情况下下载XAP文件时,手机会给出正确的错误消息:"在安装此应用程序之前,您需要添加XXXX公司帐户.请联系您公司的支持人员寻求帮助".

安装AETX后,当wp8手机尝试安装XAP文件时,手机会要求确认:"你想从XXXX安装App1吗?" 单击"安装"按钮后,没有任何反应.没有成功消息,没有错误消息,没有安装指示,并且应用程序未显示在应用程序列表中.

我也尝试通过电子邮件发送AETX和XAP文件(如果Internet Explorer或iis无法处理文件类型),结果相同.

我也试过为我们的公司中心应用做同样的事情,结果相同.

据我所知,公司中心应用程序只是另一个应用程序(当然是出于不同的目的),普通应用程序和中心应用程序可以相同的方式(通过网址或电子邮件等)分发,对吧?

怎么了?在这里找不到问题?有任何想法吗?

code-signing xap code-signing-certificate windows-phone-8

15
推荐指数
1
解决办法
2万
查看次数

Gradle uploadArchives任务无法读取密钥

我创建了一个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平台上.我已经尝试搜索错误消息,但唯一出现的是相关插件的源文件.

code-signing gnupg gradle

15
推荐指数
2
解决办法
3028
查看次数

无法在Xcode外部以数字方式签署Mac应用程序

我开发了一个带有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 …

macos xcode cocoa code-signing osx-gatekeeper

15
推荐指数
1
解决办法
3324
查看次数