问题标签 [certificate-authority]
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.
ssl - 什么样的私钥位于 PKC12 pfx 文件中?
谁能向我解释一下 PFX 文件中的“私钥”是什么类型的?
我问这个是因为在阅读了很多关于数字认证的内容之后,我仍然对私钥部分感到有些困惑,尤其是在涉及证书颁发机构的情况下。
我缺少的部分是据说私钥在 CA 端保密,但是如果我进入我的个人证书存储并尝试导出证书,我可以使用其中的私钥导出它.
这个私钥是否与我们不应该知道的私钥相同?
security - 收到的证书链包含 V3 CA 证书,其密钥使用限制表明其密钥不能用于签署证书
我们在其中一个预生产环境中使用的服务的所有者最近更改了他们的证书设置(没有通知我们)。
由于此证书更改了任何尝试调用我们的服务(位于 weblogic 盒子上)的结果:
我以前从未遇到过这个错误(就谷歌而言,没有其他人遇到过),但我推断链中的一个证书是 CA,它没有密钥签名的约束(明显地)。但是,我看不到证书链有问题,并且当我在浏览器中访问 URL 时没有任何标记。
这是链条的样子:
所有证书都在我们的信任库中。我也尝试将 weblogic 设置为演示信任,但奇怪的是,这没有任何效果。
有任何想法吗?
更新
启用调试后
我有:
对我来说,这看起来 weblogic 正在错误地读取证书链,似乎认为链底部的证书正在签名自己?
openssl - 使用 2 个 OU 名称生成 CSR
我必须创建一个生成 CSR 的应用程序。在生成 CSR 时,我们需要填写一些详细信息,例如 CN、OU 等。问题是我必须向其发送 CSR 的认证机构需要 2 个 OU(组织单位)名称。我用谷歌搜索了很多,但使用可以指定 2 个 OU 名称的 openssl 或 java keytool 都找不到任何东西。
有人可以告诉我如何在生成 CSR 时指定 2 个 OU 名称吗?
openssl - 在 CSR 中添加证书策略扩展
我正在尝试使用 openssl(版本 1.0.1.e)在 CSR 中添加“证书策略”扩展。
证书请求者是否允许处理证书策略或只有 CA 应该这样做?
基于
mkreq()
file中的功能openssl/demos/x509/openssl/demos/x509/mkreq.c
,我添加了以下行:
不幸的是,它会导致分段错误。语法是否正确?任何线索有什么问题?
ios - SSL 套接字连接 iOS
我正在尝试设置与 java 运行 SSLServerSocket 的安全连接。
我已经创建了自己的根 CA,并使用此证书签署了 Java SSLServerSocket 的证书。
我想将此根证书添加到我的应用程序中,以便根证书签名的任何证书都可以使用。
到目前为止,通过将读写流属性设置为此,我的安全连接工作正常:
我将证书添加到钥匙串中,如下所示:
这很好,但我想验证证书链,以便我的应用程序只接受由我的 CA(或默认受信任的证书)签名的证书
我怎样才能做到这一点?
如果我设置kCFStreamSSLValidatesCertificateChain
为是,我会收到错误:CFNetwork SSLHandshake failed (-9807)
但如果不是,那么谁签署了服务器证书并不重要,它会连接无论如何(我认为这是对的?)
谢谢!
ruby-on-rails - 在本地 Rails 服务器上使用受信任的 CA 签名证书
这可能听起来有点愚蠢,但我正在尝试测试 IOS 设备注册,并且我想使用受信任的 CA(例如 Verisign、Comodo)签名证书添加到我的 localhost rails webrick 服务器。我不想添加自签名证书,因为我需要测试一个非常特殊的场景。有没有办法做到这一点?我知道如果我尝试在 Comodo 之类的网站上创建 CA 签名证书,域控制器验证将失败,并且我无法使用我已经为我的生产服务器拥有的证书,因为它绑定到该域。有没有办法解决这个问题并创建生产级 SSL 证书并将其用于开发服务器?
java - 使用 hexdump sed 和 xxd 替换文件中的二进制文件(来自 java keytool csr)?
我正在尝试遵循此回复并使用 hexdump、xxd 和 sed 更改文件中的一些十六进制字节。
根据该响应,在将使用 keytool(恰好是 base-64 PEM 格式)生成的 CSR 转换为 DER 后,我应该能够进行直接字节替换,替换0x13
为0x0c
.
这是我尝试过的:
我怀疑我错过了一些转换,但我不知道在哪里。
如何使用可用工具(如 、 和/或 )执行sed
字节xxd
替换hexdump
?
java - 使用 Digicert REST api 自动生成 SSL 证书
我们需要自动化证书生成过程,并通过 CA(在我们的案例中为 Digicert)提出 CSR(证书签名请求),并在那里通过接收签名证书。
现在 Digicert 有一套 REST api 来实现相同的Digicert Api。
自动化流程的总体步骤如下
- 生成私钥(使用 Bouncy Castle api)
- 使用 Digicert 的 api 提出 CSR。这应该同时创建私钥。CSR 将包括公钥。此处提到了有关 CSR 的更多信息
- 使用 API 获取签名证书。
我的问题是,以前有没有人做过类似的事情?我应该知道的可能出现的少数问题是什么。
谢谢你的帮助
.net - WCF 客户端 SecurityNegotiationException
我有一个使用服务器证书的 WCF 服务。该证书由我们的内部证书颁发机构签署。根证书是自签名的,并通过AD分发给所有域计算机。我们已经构建并部署了许多附加到该服务的程序(大约 200 台 PC 上的大约 50 个应用程序),它们都按预期工作,除了一台服务器(我将其称为 BROKENHOST)。在这个特定的服务器(Windows Server 2003 标准服务器)上,每当程序尝试连接到该服务时,它都会抛出一个 SecurityNegotiationExeption,特别是(更改名称以保护公司):
System.ServiceModel.Security.SecurityNegotiationException:X.509 证书 CN=server.sub.domain.com、OU=sub、O=domain.com、L=Somewhere、S=California、C=US 链构建失败。使用的证书具有无法验证的信任链。更换证书或更改 certificateValidationMode。由于吊销服务器处于脱机状态,吊销功能无法检查吊销。
---> System.IdentityModel.Tokens.SecurityTokenValidationException: X.509 证书 CN=server.sub.domain.com, OU=sub, O=domain.com, L=Somewhere, S=California, C=US chain building失败的。使用的证书具有无法验证的信任链。更换证书或更改 certificateValidationMode。由于吊销服务器处于脱机状态,吊销功能无法检查吊销。
WCF 服务使用的证书也被 IIS 使用。这里奇怪的是,如果我在 BROKENHOST 上打开 IE 并输入https://server.sub.domain.com
,页面打开就好了,证书链显示OK
. 所以,我不确定为什么 IE 对证书很好,但是 Windows 应用程序失败了。
客户端连接本身是通过这样的通道工厂创建的:
同样,我们确信服务器设置是正确的,并且 BROKENHOST 存在问题。我试过用远程调试器运行代码,但这并没有给我任何我们不知道的东西。
如果有人有任何其他建议让我尝试,请告诉我。
PS如果有帮助,这里是堆栈跟踪:
服务器堆栈跟踪: 在 [0] 处重新抛出异常:ios - 对于具有不匹配主题名称的自签名 CA,SecTrustEvaluate 失败并出现 kSecTrustResultRecoverableTrustFailure
这是我使用自签名证书进行身份验证的标准 NSURLConnection 回调:
而且trustResult
总是kSecTrustResultRecoverableTrustFailure
。
证书本身有点问题。根据服务器上的 curl 证书主题名称与我连接的 url 不匹配。我已经联系了那家第 3 方公司,他们告诉我我需要在我的代码中接受这个 url 不匹配。问题是我不知道如何在 iOS 上执行此操作。我可以完全绕过证书检查(通过简单地假设trusted=YES
和调用useCredential
)或完全失败。从安全角度来看,第一种解决方案显然是错误的,并且容易受到 MITM 攻击。
这是 CURL 输出(我在这里使用了 PEM 版本的相同证书):
那么,如何忽略 iOS 上的这个特定错误呢?