问题标签 [pki]
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.
certificate - 具有主题备用名称的 OpenSSL 证书(版本 3)
我正在使用 OpenSSL 命令行工具生成自签名证书。除了两个问题外,它似乎工作正常。我无法.cer
使用主题备用名称(关键)创建它,并且我无法弄清楚如何创建版本 3的证书(不确定这是否关键但更愿意学习如何设置版本)。
有没有人成功做到这一点?默认的 config ( .cfg
) 文件有看似清晰的文档(见下文):
这些东西是为 subjectAltName 和 issuerAltname 准备的。导入电子邮件地址。主题AltName =电子邮件:复制
但是,这不起作用。我的预感是主题替代名称没有出现 b/c 它不在 V1 规范中,这就是为什么我也在追求设置他的版本。
这是我正在使用的配置文件:
sql-server - 使用 SQL Server 进行基于 PKI 的 x.509 证书身份验证?
在不使用AD 的 2 层客户端/服务器遗留应用程序(SQL Server 2008 R2)中,我想添加基于 x.509 PKI 证书的用户身份验证和授权,而不必使用 IPSec 或类似的。
客户端可以在联系 SQL Server 之前使用现有的 STS/WS 信任服务来获取签名的 SAML 令牌。
从我目前发现的情况来看,SQL Server 的 SSL 选项确实不支持相互(2 路)身份验证。一种想法是让自定义 .NET 存储过程执行身份验证(或 SAML 令牌验证),然后“启用”用户当前的 SQL Server 登录,但肯定有更好的选择。
什么是实现这一目标的好方法?
iis-7 - 错误:KeyUsage 不允许数字签名 - Java-applet + 相互 SSL
我们开发了一个基于 Web 的 Java 应用程序,该应用程序在 Windows 2008 上的 IIS 下的 Tomcat 中运行。该网站在 IIS 中启用了 2-way(相互)SSL,要求客户端使用 x.509 证书 (PKI) 作为 SSL 的一部分进行身份验证,并且该应用程序有效我们所有使用 IE 的证书都很好。
该网站还有一个名为 ViewOne ImageViewer 的 java 小程序。这适用于带有我们的一些证书的 2-way SSL,但对于其他人,在用户选择其身份验证证书后,在 SSL 握手期间,我们在客户端(java 1.6)上得到异常:
安全性:KeyUsage 不允许数字签名
证书之间最明显的区别是 EKU(扩展密钥使用)在失败的证书上不存在。有效的证书具有 EKU“客户端身份验证 - 1.3.6.1.5.5.7.3.2”。
有谁知道运行 java 小程序是否需要 EKU 1.3.6.1.5.5.7.3.2 或者是否可以在某处设置?或者错误可能是因为其他原因?
谢谢!
certificate - 公钥的格式是什么?
公共 DSA 密钥的格式是什么?所有证书都存储在base64中吗?
certificate - OpenSSL 使用自定义主题字段生成和签署证书
我需要使用自定义主题(,SERIALNUMBER = ...,)创建和签署(我是CA)证书。
到目前为止,我已经修改了 openssl 配置文件,因此我可以在主题中包含自定义字段。
问题是,在签署此类证书后,新字段以奇怪的数字格式出现 -
我应该在我的 openssl 配置文件中更改哪些位置和哪些内容以生成具有正常字段名称的证书?如何告诉签名过程 1.2.3.4.1333 应编码为“SERIALNUMBER”。
谢谢你,牛肉
pki - 如何证明某人以前的公钥确实是他们的?
我正处于开源信用清算系统的规划阶段,我的想法是使用 GPG 密钥签署 IOU。但我担心如果 Bob 签署了他通过电子邮件发送给 Alice 的 IOU,然后删除他的密钥,创建一个新的密钥对并将他的新密钥上传到密钥服务器,他将能够合理地否认 IOU 的所有权。是否有某种程序化方式可以证明密钥曾经属于发送签名电子邮件的电子邮件帐户的所有者?我的 google-fu 在这方面让我失望了。
更新:“不可否认”是我一直在寻找的词。还在研究...
python - 访问受 PKI 保护的 php 站点(HTTPS)的 Python 示例
我正在寻找如何实现 Python 应用程序以通过 HTTPS 与 php 站点通信并使用 PKI 保护的示例代码。
我可能会使用 pyOpenSSL 和 httplib.HTTPSConnection。我的问题是在哪里可以找到使用 PKI 进行身份验证的站点?(Github 会这样做吗?)。另外,有没有关于如何实现的示例代码?请指教,谢谢。
java - 如何比较 java.security.cert.X509Certificate 的不同实现
我在我的应用程序的不同部分使用 bouncycastle org.bouncycastle.jce.provider.X509CertificateObject 和 sun.security.x509.X509CertImpl,有时我需要比较它们是否相等,equals() 方法不起作用,getSubjectDN 之类的方法().getName() 为这些实现中的每一个显示不同的结果,我如何在不进行二进制 DER 或 PEM 比较的情况下比较这些证书的相等性?
certificate - PKI:检查证书吊销状态及其设置的过程
再会!
在我的 asp.net Web 应用程序中,我需要检查传入的文件数字签名。我通过调用来做到这一点:
SignedCms.CheckSignature(false) 或 SignerInfo.CheckSignature(false) (C#)。
而且我想确保在此类调用期间正确检查签名者的证书是否被吊销,确保系统设置正确并为我自己清除此过程。
传入签名者的证书可能包含大量 CA。因此,签名者的证书可能包含也可能不包含对 CA 的 OCSP 服务或 CA 的 CRL 服务的引用。
我希望系统以这种方式检查吊销:
IF 证书引用 CA 的 OCSP Web 服务然后系统向 CA 发出请求,ELSE IF 证书引用 CA 的在线 CRL 服务系统下载 CRL 并使用它 ELSE 系统使用本地 CRL。
能否请您回答我的问题:
- 我如何(在哪里)找到描述所需行为的系统设置?(这种行为是可变的还是固定的?)
- 如果证书中引用了CA的CRL web服务,是不是需要定期通过脚本下载安装CA的CRL,还是在需要CRL检查时依赖系统自动下载使用?
谢谢你。
pki - 以编程方式创建 CSR
我正在尝试以编程方式创建 CSR。我读过 ASN.1、RFC 2986、X.509。
我还手动解析了几个 DER 编码的 CSR 文件,这些文件是使用OpenSSL
.
一切看起来都很清楚,除了几件事:
公钥部分包含
8D 00 30 81 89 02 81 81
BIT STRING 内容之前(和之后03 81
)的下一个字节。这是什么?我注意到所有用 DER 编码的 CSR 文件都包含它们。我在 RFC 中没有找到任何关于它们的信息。签名部分包含签名内容之前但之后的下一个不清楚的字节
03 81
。据我了解,这部分包含有关 BIT STRING 中最后一个八位字节的信息(实际上应该在最后一个字节中占用多少位)。但我不明白如何解码这些字节。例如,签名可能如下所示:
03 81 81 00 64 12 ... 24 B1 28
其中03h
是 BIT STRING 格式,81h
位字符串的长度,64 12 ... 24 B1 28
是签名(但它的长度为 80h)。我不明白这部分81 00
。
提前致谢。