问题标签 [digital-certificate]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
21919 浏览

c# - 如何以编程方式验证程序集是否使用特定证书签名?

我的场景是我们有一个程序(exe),如果在特定文件夹中找到它,它将启动其他程序。我想确保它只启动使用我们的公司证书(Verisign 批准等)签名的程序。本质上,它只会使用与自身相同的证书启动程序。我不想发送证书本身。

我一直在搜索网络和系统命名空间,但没有找到一个清晰的示例,它可以从文件中读取证书数据并对其进行验证,并且可以检查另一个文件。我发现的最接近的是Signtool,并且在单独的exe中进行此验证有点少。我知道强命名的东西不会有帮助,因为数字签名的文件是不同的,正如这里有用的解释(http://blog.codingoutloud.com/2010/03/13/three-ways-to-tell-whether-an-assembly- dl-is-strong-named/) 还有一些 SO 中的其他示例显示了原始数据的加密和验证,但不是以某种方式将其打包在一起的程序集。

有什么想法或建议吗?

0 投票
1 回答
2884 浏览

apache - XMLSec:签名有什么问题?(“对 URI 的引用没有 XMLSignatureInput”)

我正在使用 apache-santuario 1.4.4 生成此签名消息:

当我将它发送到我正在使用的服务时,它会回复:

我用谷歌搜索了很多,但几乎没有发现任何关于这个错误的信息。是否声明了引用错误?有什么问题?任何想法将不胜感激。

提前致谢。

0 投票
2 回答
1824 浏览

java - 关于证书签名过程的java问题

我对在 java 中创建由 CA 签名的有效证书的过程感到困惑。
我知道 java 有keytool创建公私钥和证书的工具。
它还支持 JKS 和 PKCS#12。
因此,可以使用公钥-私钥对和证书
keytool -genkey -keyalg RSA -alias aCert -keystore someKeystore.keystore 创建一个密钥库,例如这将创建一个带有证书(自签名)的密钥库。
到目前为止我明白了。
我可以导出 csr 请求的证书以发送到 CA,例如 Verisign,当然不需要私钥。
在这部分之后,我迷路了。
CA 将对其进行签名,我将不得不将其重新导入我的密钥库?这将替换密钥库中已有的原始证书?
但它仍将是自签名的。
颁发者不应该是 CA 本身吗?但这怎么可能?我只发送公钥而不发送证书?
请帮助清除该过程?
更新
CA 是否签署证书(例如 Verisign)也是颁发者?或者它可以签署证书issuer==subject
谢谢

0 投票
1 回答
332 浏览

java - Java证书和vba证书有什么区别?

我已经拥有来自 Verisign 的用于签署 Java 代码的证书。为了支持 Java 应用程序,我编写了一个 Outlook 宏并希望对其进行签名。这不适用于使用 Java 证书。谁能告诉我:

a) 有一种方法可以使用有效的 Verisign Java 证书来签署 vba 代码,
b) 如果没有,那么使证书语言特定的技术差异是什么。

我只要求再次为另一个 Verisign 证书支付相同的金额,这对于少数几行 vba 代码来说有点令人讨厌。

0 投票
1 回答
734 浏览

iphone - What can I use to parse a digital certificate on iOS?

The security API's on iOS only seem to cover extracting certain parts of the certificate.

Has anyone used openSSL or asn1c to allow the retrieval of Extensions, Policies etc from the certificate bytes?

0 投票
1 回答
246 浏览

digital-certificate - 如何使用数字证书来检查程序的作者?

我们开发了一个 Win32 程序 (=host),它允许第 3 方编写插件。由于某些插件包含有价值的代码(例如,高质量视频标量),第 3 方希望限制他们的插件只能与我们的主机程序一起使用

我们的想法是使用 Microsoft Authenticode 技术对主机进行签名。然后,要求第 3 方执行以下算法来检查主机。(预计第 3 方对算法进行足够的代码混淆)。

  1. 使用 WinVerifyTrust() API 来验证主机的证书是否有效(= 未撤销、未篡改等)。

  2. 验证主体是我公司的证明。

问题是关于步骤(2)。第三方不能简单地检查指纹或序列号,因为主机的数字证书将在证书到期日之后更新。

我的想法是检查部分主题的专有名称,特别是“国家(C)”和“通用名称(CN)”,假设在美国没有公司名称冲突。我们不应该检查其他属性,例如州和城市,因为我们的公司可能会搬家——事实上,一年前我们已经从一个城市搬到了另一个城市。

问题:这是实现目标的好方法吗?

0 投票
1 回答
6565 浏览

java - 为 JApplet 设置“发布者”

我已经生成了密钥库及其内部密钥。然后我签署了我的测试小程序。但是每次我启动我的 jnlp 小程序时,我都会看到 Internet 浏览器安全警告对话框,它显示...

  • 发布者:未知
  • 从:http://localhost:8080...

我能错过什么?请帮我设置发布者。

任何有用的评论表示赞赏:)

0 投票
2 回答
1867 浏览

c# - 以编程方式驱动证书颁发机构(C# 或 C++)

我正在编写一个客户端/服务器应用程序,该应用程序需要服务器能够对客户端进行身份验证,并且还需要对所有通信进行加密。

提供此功能的机制需要自包含在服务器和客户端应用程序中,并且还需要完全自动化(无需人工交互)。SSL 似乎是最好的方法,也是我熟悉的使用方法。

对于需要为其部署客户端软件的每个客户端,我计划(即时)创建一个 MSI 安装程序,其中包含应用程序、客户端证书(由服务器签名)和私钥以及服务器公共证书(以便客户端可以验证服务器 - 服务器证书可以是自签名的)。

我可以为客户端生成密钥并制作 CSR,但似乎无法找到实际签署 CSR 并为客户端生成证书的方法。我研究了 Win32 Crypto API,但没有找到任何关于如何实际签署 CSR 和获取客户端证书的示例。

我知道如何使用 openssl 工具从命令行执行所有这些操作,但不确定如何在应用程序中执行此操作。

请注意,对 openssl 工具进行系统调用并传入我知道可以工作的参数不是一种选择,因为依赖 openssl 工具不会以任何方式受到损害是一个巨大的安全风险。这样做不会满足自包含的要求。

我正在以正确的方式解决这个问题,或者有更好的方法来实现同样的事情 - 基本上是对连接到服务器的客户端的身份验证以及连接客户端对他们连接到的服务器进行身份验证的方式,所有这些都是加密的。

我不能对具有静态 IP 或主机名的服务器(或客户端)做出任何假设(DNS 无论如何都可能被破坏),我也不能对任何现有的 PKI 基础设施做出任何假设。

我主要在 C#.Net 中编写此代码,但如果它为我提供此功能,我会考虑为此编写 C++ 扩展。

最后,这是我在这里的第一篇文章,所以如果我遗漏了一些明显的东西或缺少任何细节,请询问,我会填补空白:)

谢谢,

詹姆士

0 投票
1 回答
993 浏览

certificate - 如何使用 asp.net 应用程序的数字签名(PKCS12 个人证书)签署文档

我有一个 asp.net 网站,我将从该网站上传文件。我将继续从文档中创建一个散列,以便出于安全原因将其存储在一个列中。

但是我需要使用位于用户个人证书存储中的证书来加密该“哈希”。

我想从浏览器中执行此操作,如果我最终得到一个只能在 IE 中部署的解决方案,这并不重要。

0 投票
1 回答
293 浏览

sql - SQL 服务器创建数字证书

我们有一个使用 SQL Server 2005 或更高版本的应用程序,当我们创建数据库时,它当前会创建各种登录,我们有各种使用证书签名的存储过程。

目前,当生成或备份证书时,它使用 SQL Server 数据目录,这可能会导致 AV 软件问题和其他服务器权限问题。

本质上,我们需要找到一个临时目录,我们可以将证书复制到其中以进行安装,我可以获得临时目录的唯一方法是使用以下脚本通过 xp_cmdshell:-

但是,如果在 SQL Server 中关闭了 xp_cmshell 组件,则这并不好。

有没有人有任何其他建议,从长远来看,我们将放弃数字证书,但在短期内我们不能这样做。