JKS 与 PKCS12 在代码签名方面有何优点?

2024-01-04

购买代码签名证书时,从 PKCS12 开始与 JKS 证书相比有何优点?一些vendors http://help.godaddy.com/article/4780提供有关从 JKS 或 PKCS12 证书签名请求开始的说明。我们希望在使用购买的证书时拥有最大的灵活性,特别是考虑到成本。例如,我们可能不仅仅签署 Java 代码(例如:iPhone 或 Android 代码签名)。选择任一方法时我们应该考虑哪些技术因素?


如果您使用 Java 工作,那么 Java 密钥存储是存储私钥的一个相当自然的地方。Java 应用程序通常希望从 JKS 获取所需的密钥,并且可以从您自己的 Java 应用程序轻松访问。不过,JKS 无法从 Java 外部访问(无需跳过一些环节)。

另一方面,PKCS#12(又名 PFX)文件是一种与语言无关的存储加密私钥和证书的方式,并且已经存在了足够长的时间,几乎所有地方都支持它。但请注意,该文件格式过于复杂且过于笼统——请参阅 Peter Gutmann 的“PFX - 如何不设计加密协议/标准”(http://www.cs.auckland.ac.nz/~pgut001/pubs/pfx.html http://www.cs.auckland.ac.nz/~pgut001/pubs/pfx.html)以轻松的态度看待问题。

请注意,使用这些存储格式中的一种或另一种实际上是一个关于应用程序如何在本地存储加密私钥的问题。向您出售证书的供应商永远不会看到私钥,因此他不在乎您使用什么格式。您向他(供应商/CA)发送 PKCS#10 证书请求(包含公钥并使用私钥签名,但不包含私钥),他向您发回证书(您可以将其存储在 JKS 或PKCS#12 文件或两者,或您喜欢的任何其他文件)。

从技术上讲,这两种格式都不是理想的,因为它们都通过使用从密码派生的密钥对其进行加密来保护私钥。但这并不意味着其中任何一个都比另一个更好。如果您可以使用智能卡或其他硬件密钥存储解决方案,则安全性(尽管不方便)会更好。

决定您选择的主要因素应该是您计划如何使用私钥,即:哪些应用程序需要使用私钥以及它们已经处理什么格式的密钥存储。 PKCS#12 是更灵活的选项...但如果您打算仅将密钥与您自己编写的代码一起使用(不需要互操作性),那么您也可以考虑使用 PKCS#8 或 PKCS#15 容器。

我不建议您编写自己的代码来处理 PKCS#12(我已经这样做了,但不好玩)——使用经过验证的第三方库(如 OpenSSL)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JKS 与 PKCS12 在代码签名方面有何优点? 的相关文章

  • Windows Server 2012 R2 上通过 SSL 的 AD LDS

    我正在尝试将我的 AD LDS 实例配置为通过 SSL 运行 以便我可以使用我的应用程序从另一台计算机连接到它并执行密码更改操作 我安装了证书颁发机构来创建一个服务器证书 我可以在我的 AD LDS 实例上使用该证书 我将证书添加到 AD
  • 使用令牌 URI 获取证书 URI

    我正在尝试在 Ubuntu 上使用 USB 令牌来访问 VPN 此访问必须使用 openconnect 来完成 并在连接字符串中使用证书的 URI 但问题是 我不知道如何获取我的证书的 URI 我已经能够让 Ubuntu 识别该令牌 并且通
  • 如何在 Python 中使用 PKCS12 对 RSA 密钥进行编码?

    我正在使用 Python 在 Google App Engine 下 并且我有一些需要以 PKCS 12 格式导出的 RSA 私钥 有什么可以帮助我的吗 我正在使用 PyCrypto KeyCzar 并且我已经弄清楚如何以 PKCS8 格式
  • 解码 PKCS#12 文件

    我正在寻找在 NET 中解码 PKCS 12 文件的方法 我需要提取私钥和任何证书 以便我可以以编程方式访问以下内容 modulus 公共指数 私人指数 prime1 prime2 指数1 指数2 系数 我需要此信息 以便我可以成功使用 P
  • 如何在 C# 中从 USB 令牌读取证书

    我有一个 USB 令牌 其中包含一个加密证书 该证书具有公钥和私钥 现在我想用 C 创建一个应用程序 通过它我可以找到可访问的证书信息 当我插入 USB 令牌时 它会被检测到 但计算机部分上没有显示任何驱动器 就像闪存驱动器一样 如何从 U
  • 代码签名身份 <名称> 与任何有效的、未过期的代码签名证书不匹配

    我希望有人能帮我解决这个令人抓狂的问题 我和我的朋友正在开发一个 mac 商店应用程序 托管在 github 上 一个月前 我们使用他的开发中心帐户从他的机器上发布了该应用程序 我最近将源代码从 github 拉到我的机器上 以进行更新 但
  • 配置Apache将SSL客户端证书发送到后端服务器

    我想配置 Apache 以便它接收客户端证书 并将其传递到另一台服务器 我在用着 Windows 上的 Apache 2 0 65 后端服务器是基于 apache 的解决方案 IBM HTTP Server 我尝试了这个配置
  • 代码签名证书选项

    我被分配了为我的公司购买数字证书来签署我们的代码的任务 我们在 Microsoft 领域开发应用程序 主要是 WPF 或基于 Web 我调查了选项 发现 Comodo 价格合理且反应灵敏 我们准备继续通过它们购买证书 但是在注册表单中有各种
  • iOS 上读取证书问题

    我正在尝试从 iOS 中的各种 URL 读取证书 然而 我的代码运行不佳 应该返回我需要的信息的数组总是返回null 我缺少什么 void findCertificate NSString url NSInputStream input N
  • 我应该在 Heroku 上的哪里存储敏感文件?

    这个问题可能有一个明显的答案 只是我没有想到 我知道敏感数据 例如安全凭证 最好通过 Heroku 的 CLI 使用环境变量存储在 Heroku 等服务上heroku config add 但敏感的怎么办files 比如证书 具体来说 我想
  • 提取证书中主题属性的所有值

    我目前正在使用CertGetNameString http msdn microsoft com en us library windows desktop aa376086 28v vs 85 29 aspx提取每个主题属性的值 如下所示
  • 无法通过 Git Bash 克隆 git 存储库

    在尝试使用克隆存储库时git clone 它显示以下错误 致命 无法访问 https github com microsoft c9 python getting started git https github com microsoft
  • 使用 PEM 证书的 HTTPS 连接

    我正在尝试使用 PEM 证书发布 HTTPS 请求 如下所示 import httplib CERT FILE path certif pem conn httplib HTTPSConnection 10 10 10 10 443 cer
  • iPhone Developer' 与任何有效的、未过期的证书/私钥对不匹配 - 但我正在创建 iPad 应用程序 [重复]

    这个问题在这里已经有答案了 可能的重复 代码签名错误 身份 iPhone Developer 与默认钥匙串中的任何有效证书 私钥对不匹配 https stackoverflow com questions 2108503 code sign
  • 从 Azure 密钥保管库存储和检索 JKS

    我想引用 Azure Key Vault 中的 Java 密钥存储 而不是将其与作为 docker 映像部署到 Kubernetes 集群中的 Spring Boot 应用程序打包在一起 根据 Azure 文档 仅允许将 PFX 文件导入到
  • 如何将 .cer 证书导入 java 密钥库?

    在开发 Java Web 服务客户端期间 我遇到了一个问题 Web 服务的身份验证使用客户端证书 用户名和密码 我从网络服务背后的公司收到的客户端证书位于 cer格式 当我使用文本编辑器检查该文件时 它具有以下内容 BEGIN CERTIF
  • Java 使用服务器证书对 jar 进行签名

    是否可以使用服务器证书来签署 java web start 应用程序 我想知道的是它是否有效 我的服务器有一个受信任的证书 并且我想重复使用同一证书来签署应用程序 现在 我有这样的警告 此 jar 包含其签名者证书的 ExtendedKey
  • WCF获取证书编码值

    我在 WCF 服务中使用证书 因此在 web Config 中有一个编码值
  • SecItemAdd 创建两个身份

    我正在为 iPhone 开发一个应用程序 需要证书来调用某些服务 因此我将证书添加到我的钥匙串中 执行以下操作 SecCertificateRef cert SecCertificateCreateWithData NULL bridge
  • 使用不在证书存储中的客户端证书

    我正在尝试使用我的客户端证书对 WebService 进行身份验证 但是 由于某些原因 我解释 我不想从存储加载证书 而是从光盘读取它 下列 gw is teh WebService client X509Certificate cert

随机推荐

  • 如何让 Alexa 以秒为单位倒计时

    我希望能够在我的技能中实现 Alexa 有声 倒计时 15 秒 我知道我可以
  • [Vue warn]:渲染错误:“TypeError:_vm 未定义”(在 中找到)

    我最近切换到使用打字稿的类组件 并在我的网站上收到此错误 此错误在 Firefox 上出现 但在 chrome 上出现 TypeError Cannot read property createElement of undefined fo
  • 如何准确地制作地图叠加层的地图

    我有覆盖整个南非的图像 它们采用 Tiff 格式 并嵌入了坐标 我正在尝试拍摄这些图像 大约 20 张图像 并将它们用作我的 iPhone 应用程序中的地图叠加层 我的问题在于将地图切割成图块 准确地 MapTiler 是我计划用来将这些大
  • Javascript 过滤器与地图问题

    作为我在对象数组中最小 最大的延续 我想知道过滤器与映射的性能比较 因此 我对代码中的值进行了测试 以便在 FireBug 中查看结果 这是代码 var vec this vec min x Math min apply Math vec
  • Office 365 Excel 访问 RegEx 库的“工具”->“引用”菜单

    这听起来可能是一个简单的问题 但我正在 VBA 中创建一个使用正则表达式的宏 事实证明 VBA 本身并不支持正则表达式 我需要添加对 Microsoft VBScript 正则表达式 5 5 的引用才能访问 Excel 中的正则表达式函数
  • JUnit 测试相互影响

    我正在处理大量遗留代码 首先有一个 JUnit TestSuite 当使用 gradle 运行所有测试时 它们都失败了 在 IntelliJ 中运行测试时 它们起作用了 我们配置 gradle 以使用测试套件 现在有人报告测试在没有 gra
  • 从 java 5 和 java 6 发送邮件

    我知道类似的问题以前已经被问过很多次了 但我认为这个问题略有不同 我正在编写一个 Maven 报告插件 它将向用户列表发送电子邮件 我现在遇到的问题是 当我使用 java5 运行代码时 代码似乎工作正常 但使用 java6 运行时则失败 实
  • 反转位图颜色

    我有以下问题 我有一个图表程序 它的设计是黑色的 但图表 我从服务器作为图像获得 是浅色的 它实际上只使用 5 种颜色 红色 绿色 白色 黑色和灰色 为了配合设计反转做得很好 唯一的问题是红色和绿色也颠倒了 绿色 gt 粉色 红色 gt 绿
  • 如何逐行执行bash脚本?

    如果我输入bash x http tldp org LDP Bash Beginners Guide html sect 02 03 html选项 它将显示所有行 但脚本会正常执行 如何逐行执行 我可以看看它是否做正确的事情 或者我中止并修
  • 非应用程序用户的图片在 Facebook Open Graph v2.0 中是否仍然可用?

    在Graph API v1 0中 我可以获取以下人员的个人资料图片any具有以下调用的用户 graph facebook com uid picture fb doc https developers facebook com docs g
  • WHERE 子句中的 case 语句中存在语法错误“缺少关键字”

    我的 case 语句中有一些语法错误 我正在检查以下条件 RAP10B CLMSRC 2 RAP01 EFFDT 3 years lt RAP10 LOSSDT lt RAP01 EFFDT OR RAP10B CLMSRC lt gt 2
  • vulkan VkPipelineLayoutCreateInfo 的多个 setLayoutCount 的目的是什么?

    我想知道为什么可以在 VkPipelineLayoutCreateInfo 中指定多个描述符集布局 因为单个描述符集布局已经包含所有绑定 描述符集布局描述单个描述符集的布局 但管道可以有multiple描述符集 这就是layout set
  • 如何从 WPF 中的 app.config 获取 List 值集合?

    以下示例填充项目控制与列表备份目录我从代码中得到的 如何更改此设置以便从 app config 文件中获取相同的信息 XAML
  • Ruby 上类似 Django 的框架?

    Django 作为一个框架是一个简洁的小包 文件很少 与 Rails 相比 并且结构干净 事实上 您可以在不同项目之间插入和拔出应用程序 这是一个非常漂亮的功能 同时 Ruby的黑客能力是无与伦比的 它完全的面向对象特性使其更具表现力和乐趣
  • 使用 BeautifulSoup 抓取包含 JavaScript 的网页

    伙计们 我再次向您提出申请 我可以用标签抓取简单的网站 但最近我遇到了一个带有 JavaScript 的相当复杂的网站 因此 我想以表格 csv 的格式获得页面底部的所有估计值 如 用户 收入估算 每股收益估算 我希望自己能解决这个问题 但
  • 自动发现在 settins.py 中注册的 Django 应用程序小部件

    标题可能有点令人困惑 但我不知道还能怎么称呼它 我想创建一个包含大量应用程序的 Django 项目 您可以使用任意打开或关闭INSTALLED APPSsettings py 中的选项 显然您还需要编辑 urls py 并运行syncdb
  • 如何对编码任务进行非常快速(且肮脏)的估计? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 所以你刚刚被老板置于困境 您有 15 分钟的时间对添加一些新功能进行粗略估算 您的老板 幸运的是 认识到您无法在那段时间提供准确的估计 因此期望
  • 什么是摘要认证?

    除了以纯文本形式发送凭据之外 摘要式身份验证与基本身份验证有何不同 主要区别在于它不需要以明文形式通过网络发送用户名和密码 它也不受重放攻击的影响 因为它使用来自服务器的一次性号码 服务器向客户端提供一次性使用编号 随机数 该编号与用户名
  • 比较 JavaScript 中的时间

    我需要创建一个函数来根据时间过滤数据 我有一个相关行中包含出发时间的航班表 我需要的是 我将时间过滤器字段添加到我的表单中 以隐藏选定时间之前和之后的航班 换句话说 所选时间间隔之间的航班将可见 我从表和输入中获取时间信息没有问题 但我现在
  • JKS 与 PKCS12 在代码签名方面有何优点?

    购买代码签名证书时 从 PKCS12 开始与 JKS 证书相比有何优点 一些vendors http help godaddy com article 4780提供有关从 JKS 或 PKCS12 证书签名请求开始的说明 我们希望在使用购买