相关疑难解决方法(0)

使用signtool签署代码时如何包含整个证书路径?

如何在使用代码签名时包含整个证书路径signtool

较旧版本的signtool将在数字签名中包含整个证书路径.现在如果我签署一个可执行文件signtool:

signtool.exe" sign /v /f avatar.pfx -t "http://timestamp.verisign.com/scripts/timstamp.dll" app.exe
Run Code Online (Sandbox Code Playgroud)

签名无效:

在此输入图像描述

这是因为没有认证路径:

在此输入图像描述

使用旧版本的signtool签名的二进制文件工作正常:

在此输入图像描述

如何在签名时告诉signcode包含整个认证路径?

签署二进制文件的正确方法是什么?


更新:SignTool版本6.1.7600.16385:

在此输入图像描述

也可以看看

code-signing

10
推荐指数
1
解决办法
7059
查看次数

Thawte 证书“无法验证签名中的证书”

我需要使用company.pfx 中存储的证书对Application.exe 文件进行签名。所以,我使用了signtool:

signtool.exe sign /p password /f company.pfx /t http://timestamp.verisign.com/scripts/timestamp.dll /v Application.exe

The following certificate was selected:
    Issued to: Company, Inc.
    Issued by: Thawte Code Signing CA - G2
    Expires:   Wed Aug 27 02:59:59 2014
    SHA1 hash: A2A0BD7C4516BF8C88AECC3A568CE9BB5D63902D

Done Adding Additional Store
Successfully signed and timestamped: App1_old.exe

Number of files successfully Signed: 1
Number of warnings: 0
Number of errors: 0
Run Code Online (Sandbox Code Playgroud)

Signtool 说没有错误。但在数字签名详细信息中,有一条消息“无法验证签名中的证书”。并且没有认证路径。

在“详细信息”中,有一个属性“扩展错误信息”,表示“吊销状态:吊销功能无法检查吊销,因为吊销服务器已离线”。

应用程序.exe图像

为了调查这个问题,我在应用程序上使用了 sigcheck(-a key),它显示“已验证:无法为受信任的根颁发机构构建证书链。”

然后我将 pfx 文件导入存储库,看起来证书没问题。

证书图片

我在 stackoverflow 上搜索了有关我的主题的信息,找到了一些链接,它很有帮助。 …

openssl digital-signature signtool

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

IIS客户端证书不起作用.返回403错误

我正在尝试设置IIS 8(Windows Server 2012)以接受安全WebAPI端点的客户端证书.在这篇文章之后,我创建了一个自签名证书和一个客户证书:

makecert.exe -r -n "CN=MyCompany" -pe -sv MyCompany.pvk -a sha1 -len 2048 -cy authority MyCompany.cer

makecert.exe -iv MyCompany.pvk -ic MyCompany.cer -n "CN=MY Client" -pe -sv MyClient.pvk -a sha1 -len 2048 -sky exchange MyClient.cer -eku 1.3.6.1.5.5.7.3.2

pvk2pfx.exe -pvk MyClient.pvk -spc MyClient.cer -pfx MyClient.pfx -po THE_PASSWORD
Run Code Online (Sandbox Code Playgroud)

我在IIS服务器上安装了根证书MyCompany.cer,然后在IIS管理器/ SSL设置上我选择了"接受"单选按钮以允许网站接受客户端证书.

在客户端a有一个C#测试控制台应用程序,它加载客户端证书MyClient.pfx文件并调用WebAPI端点:

var certHandler = new WebRequestHandler();
certHandler.ClientCertificateOptions = ClientCertificateOption.Manual;
certHandler.UseProxy = false;
var certificate = new X509Certificate2(File.ReadAllBytes(@"C:\MyClient.pfx"), "THE_PASSWORD");
certHandler.ClientCertificates.Add(certificate);
var client = new HttpClient(certHandler);
var result = client.GetAsync("https://MyServer/api/MyEndpoint").Result;
string …
Run Code Online (Sandbox Code Playgroud)

iis ssl-certificate x509certificate

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