标签: code-signing

我怎样才能防止每1年或2年重新签署我的代码?

我正在阅读当代码签名证书到期时会发生什么 - Stack Overflow并想知道更复杂的答案.提供的答案更多是关于设置自己的CA. 即使使用您自己的CA,您仍然需要处理过期的代码证书.

如果您在不使用时间戳服务的情况下签署了代码,则在证书过期后,您的代码将不再受信任,并且根据安全设置,可能不允许其运行.您需要每1年或2年使用新证书或续订证书重新签署所有代码.

可信(数字)时间戳允许数字签名即使在证书本身过期后也有效.只有在进行了更改后,才需要使用新证书重新签名代码.

这听起来都是正确的吗?如果是这样,我需要建议使用什么时间戳服务,最好是实际使用过的服务.我还想知道是否有任何内部解决方案,类似于您自己的CA.

现在这适用于PowerShell脚本,但我最终会遇到与其他代码相同的问题.

更新:如何使用时间戳签署PS脚本的示例(您可以为此创建脚本):

Set-AuthenticodeSignature -filepath "D:\Projects\A Sample\MyFile.ps1" 
  -cert gci cert:\CurrentUser\My -codesigning 
  | where -Filter {$_.FriendlyName -eq "Thawte Code Signing"}
  -IncludeChain All 
  -TimeStampServer "http://timestamp.verisign.com/scripts/timstamp.dll"
Run Code Online (Sandbox Code Playgroud)

然后,要查看签名者证书和TimeStamper证书,您可以这样做:

Get-AuthenticodeSignature MyFile.ps1 | fl *
Run Code Online (Sandbox Code Playgroud)

它为您提供证书和时间戳证书的主题(CN,OU等),颁发者,前/后日期和指纹.您还会收到一条消息,指示签名的状态.

powershell code-signing certificate trusted-timestamp

11
推荐指数
2
解决办法
7536
查看次数

如何在.NET ClickOnce应用程序中设置"Publisher"

我正在发布一个.NET ClickOnce应用程序,当用户安装它时,Publisher被设置为Unknown Publisher(见下文).

我需要做些什么来改变这个领域?我需要有效的SSL证书吗?

替代文字http://i46.tinypic.com/fjkayq.png

.net wpf clickonce code-signing

11
推荐指数
2
解决办法
8572
查看次数

您在哪里存储代码签名证书的私钥?

我最近为我的雇主获得了代码签名证书,但我不是InstallShield开发人员,他将在分发之前签署二进制文件.我知道我可以将证书与其私钥一起导出,但是我在哪里存储它以便InstallShield开发人员可以将其安装在他的机器上?一旦我把它交给签字的人,我应该把它从机器上取下来吗?我在哪里存储主副本?显然,源代码控制并不是最好的地方,除非我在SVN中锁定该目录.

svn installshield code-signing certificate

11
推荐指数
1
解决办法
3366
查看次数

如何使用.PFX文件签署JAR文件

我们使用.PFX证书文件签署.net代码.现在,同事需要使用相同的证书为客户签署.jar文件.

有人能指点我一个链接或一个如何做到这一点的例子吗?

jar文件将在Solaris上运行的Oracle WebLogic Server上使用.

并且,一旦签名,我们需要发送任何其他签名的jar文件?

谢谢.

code-signing certificate jar-signing pfx

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

Xcode中的代码签名

我打算为我的mac应用程序启用代码签名,这样我就可以将应用程序提交到mac app store.但是,当我选择第三方mac应用程序证书进行代码签名时,它表示没有配置文件匹配.

当我尝试构建应用程序时,我收到错误:

代码签名错误:标识"第三方Mac开发人员应用程序"与默认钥匙串中的任何有效证书/私钥对都不匹配

我无法弄清楚原因.我试图撤销并重新安装我的证书,但这似乎没有帮助.

这是2个截图.构建设置中的代码签名部分和来自密钥链访问的代码签名部分.

在此输入图像描述

在此输入图像描述

也许你能看到什么是错的?如果您需要更多信息,请告诉我们!:)

macos code-signing code-signing-certificate xcode4

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

XCode:无法启动"APP_X_Y" - "A"数据包返回错误:-1

我试图让我的应用程序再次在模拟器和我的设备上工作.在我收到此错误之前,我经历了一次XCode签名错误的观察,但是知道我似乎真的被卡住了.

错误:

当我尝试在设备上启动应用程序时,它构建没有任何错误,但在安装应用程序后,我收到错误消息:

无法启动"APP_X_Y" - "A"数据包返回错误:-1

不幸的是我也无法使用模拟器 - 它被困在"附加到APP_X_Y".你也可以看一下这里的模拟器问题- 但是没有最终的解决方案.

到目前为止我做了什么:

在经历了不同的XCode错误之后,我经历了以下Stackoverflow问题,每个问题都帮助我进入下一个级别.

  1. Xcode:无法完成流程任务
  2. 配置文件错误(启动远程程序时出错:无法获取进程XXX的任务.)
  3. 代码签名错误:找不到供应配置文件
  4. 配置文件"团队"是"未知"

在最后一步,但是我认为事情变得非常糟糕:XCode无法再找到配置文件,这就是为什么我在项目文件中删除了我的配置文件字符串,就像在这里推荐的那样:Codesign error :删除过期的配置文件后找不到配置文件

知道我正在努力使数据包返回-1错误,我在这里找不到任何输入.有谁知道如何让这个再次工作?

code-signing certificate ios xcode4 provisioning-profile

11
推荐指数
3
解决办法
2346
查看次数

如何使用时间戳正确地进行双重签名?

我有两个代码签名证书(一个SHA-1,一个SHA-256),我想将它们应用于同一个文件.我试图附加SHA-256证书,但这失败了:

:: Signs with the SHA-1 certificate
signtool sign /sha1 8f52fa9db30525dfabb35b08bd1966693a30eccf /t http://timestamp.verisign.com/scripts/timestamp.dll my_app_here.exe
:: Signs with the SHA-2 certificate
signtool sign /sha1 8b0026ecbe5bf245993b26e164f02e1313579e47 /as /t http://timestamp.verisign.com/scripts/timestamp.dll my_app_here.exe
Run Code Online (Sandbox Code Playgroud)

这失败并出现错误:

Done Adding Additional Store
SignTool Error: SignedCode::Sign returned error: 0x80070057
        The parameter is incorrect.
SignTool Error: An error occurred while attempting to sign: my_app_here.exe
Run Code Online (Sandbox Code Playgroud)

如果从第二个命令中删除时间戳URL,则签名成功完成,但SHA-2签名没有时间戳.(我是否在第一个签名上加上时间戳没有效果)

这里的目的是允许某人使用更强大的证书验证应用程序,如果他们在支持此功能的操作系统上,但是为了避免在不支持更强版本的操作系统(Vista,XP)上验证失败.

这种事情甚至可能吗?

code-signing authenticode code-signing-certificate verisign

11
推荐指数
1
解决办法
5919
查看次数

使用COMMAND LINE帮助程序的沙盒OSX应用程序提供"无法获取根路径"

我正在构建一个与命令工具'unrar'捆绑在一起的Mac应用程序来解开一些文件.该应用程序是沙盒.

在xcode中,我将unrar命令工具复制到应用程序的Resourse文件夹(带有名为'exec'的子路径):

复制文件: 目标:资源 - 子路径:执行

在复制阶段之后,我执行运行脚本来设置权利和代码签名,如下所示:

运行脚本: Shell:/ bin/sh

LOCATION="${BUILT_PRODUCTS_DIR}"/"${CONTENTS_FOLDER_PATH}"
IDENTITY="3rd Party Mac Developer Application: CompanyName."
codesign -f -s "$IDENTITY" --entitlements"/<path>/unrar.entitlements" "$LOCATION"/Resources/exec/unrar
Run Code Online (Sandbox Code Playgroud)

在应用程序本身中,我使用NSTask来执行unrar命令:

NSString *filePath = [[NSBundle mainBundle] pathForResource:@"unrar" ofType:@"" inDirectory:@"exec"];

NSTask *task = [[NSTask alloc] init];
[task setLaunchPath:filePath];
[task setArguments:[NSArray arrayWithObjects:@"e", rarfilepath,extractpath, nil]];
[_task launch];
Run Code Online (Sandbox Code Playgroud)

unrar.entitlements包含:

<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.inherit</key>
<true/>
Run Code Online (Sandbox Code Playgroud)

运行应用程序时,一切正常,文件被提取.

但是......然后当我检查系统日志时,我看到以下消息:

secinitd [332]:unrar [94747]:无法获取主可执行文件包的根路径:/Applications/App.app/Contents/Resources/exec/unrar

当我不运行上面的运行脚本时,该消息确实消失,但是然后没有为'unrar'命令工具设置权利并且Sandboxing失败.

我现在已经听了三天听到这个消息意味着什么,以及如何解决它,但我没有想法.

搜索谷歌或stackoverflow也没有帮助.

请有人帮我解决这个问题.

谢谢你,安德烈.

(抱歉所有文字,但我不允许发布图片.)

macos code-signing sandbox mac-app-store

11
推荐指数
1
解决办法
698
查看次数

Xcode 8没有找到代码签名

升级到Xcode 8后,由于以下错误,我无法在设备上进行调试:

App installation failed. No code signature found.
Run Code Online (Sandbox Code Playgroud)

我的设置,观察以及到目前为止我尝试过的内容:

  • 该设备已安装iOS 10
  • Xcode 7中设备上的代码签名和调试工作(代码签名没有变化)
  • 该应用程序有一个手表应用程序(没有手表应用程序的构建/运行没有改变什么)
  • 刷新配置文件,删除所有配置文件并重新加载它们并没有改变任何东西
  • 从构建设置中删除所有代码签名设置并启用"自动管理签名",这也没有帮助
  • 我总是清理build文件夹
  • 我试过重启设备,xcode,mac
  • 我的同事报告了同一项目的同一问题
  • 我已经尝试恢复Xcode 8建议的更改(构建设置,警告修复,......)

xcode code-signing build-settings ios xcode8

11
推荐指数
1
解决办法
6400
查看次数

签署Java桌面应用程序

我使用Swing(myProg.jar)创建了一个Java桌面应用程序.我目前将我的应用程序打包为我的Mac用户的.app,我使用InnoSetup为我的Windows用户制作一个setup.exe文件.我还提供了一个myProg.exe包装器来启动myProg.jar.

现在,为了摆脱我的用户计算机上的SmartScreen和其他保护措施,我认为我需要签署我的应用程序.但是我读的越多,它对我来说就越混乱.

任何人都可以为我澄清以下几点吗?

1)我需要什么样的证书?无论如何要让它免费或至少便宜吗?

2)我需要准确签署什么?我应该签署myProg.jar文件,.app文件吗?setup.exe?myProg.exe包装器?他们都是?

3)已解决 -当我更新程序并用myProg.jar的新版本替换myProg.jar时,它将如何工作?

非常感谢!

java swing code-signing certificate

11
推荐指数
1
解决办法
701
查看次数