问题标签 [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.

0 投票
3 回答
998 浏览

c# - 为什么我不应该使用 GC.Collect()

我正在开发一个应用程序,我在其中使用 CertAdm.dll 来连接到证书颁发机构。有时我收到错误“尝试打开证书颁发机构数据库会话,但活动会话已经太多。可能需要配置服务器以允许其他会话。”

如果我像下面的代码一样配置我的连接,我不会收到错误并且一切正常。

现在我想知道的是,我读过很多人说你不应该使用 GC.Collect()。为什么我不应该?它解决了我的问题?

非常感谢所有帮助。

0 投票
1 回答
799 浏览

iphone - 将内部 CA 根证书添加到 iPhone iOS 配置文件

我的 iOS 应用程序现在正在开发中,我们连接的服务正在使用由我们的内部(公司)CA 签名的证书。我的应用在很多地方都使用同步请求调用安全 Web 服务。切换到异步并处理证书挑战以手动接受来自我们域的证书将是一项巨大的努力。

我想做的是将我们的 CA 根证书添加到我们团队的配置文件中,以便在开发中将其识别为受信任的 CA。有人可以帮我吗?

如果这不可能,有人有什么建议吗?这是我从最好到最坏的选择。

  1. 将内部 CA 根证书添加到开发配置文件中的受信任 CA
  2. 购买证书(不想这样做,因为我们的部署服务器已经有一个有效的证书,我不想在我们的开发/测试环境中只需要的证书上浪费钱)。
  3. 切换到 ASI 框架以绕过挑战(不想这样做,因为它会降低我的应用程序的安全性。我的代码是正确且安全的,但我无法在开发/测试中进行测试。我不想让我的应用程序更糟糕的是,我可以在我的开发环境中进行测试。)
  4. 切换到异步请求并通过接受我域中的所有证书来处理挑战(也不想对工作代码进行代码更改。而且切换到异步对我们来说是一个巨大的努力,而且我们没有时间) .

感谢所有帮助!谢谢。

0 投票
0 回答
143 浏览

apache - CA 服务器即将退役。内部反向代理连接会发生什么?

请告诉我,如果我的 ssl CA 服务器停用并且我使用此 CA 签名的证书来建立内部 Apache 和反向代理 Apache 之间的连接,会发生什么?

Apache 中的 SSLVerifyClient 属性设置为默认值。

0 投票
2 回答
4736 浏览

openssl - Openssl s_Client 不验证 0.9.8r 中的证书

我正在使用 openssl v0.9.8r 并尝试运行此命令(CA 文件名为 cacert.pem 在我运行的目录中)

openssl s_client -CAfile cacert.pem -CApath ./ -connect mail.google.com:443

验证失败如下

Verify return code: 20 (unable to get local issuer certificate)

但是,当我在其中一个旧版本(即 OpenSSL 0.9.8e-fips-rhel5)上尝试相同的命令时,它按预期成功。我在这里错过了什么吗?我将非常感谢我能得到的任何帮助,因为我已经被 openssl 问题困扰了一段时间。提前非常感谢。

问候

哈里

0 投票
4 回答
13886 浏览

ssl-certificate - SSL 证书可以由多个证书颁发机构签署吗?

将信任分散一点会很好,因此我们在任何情况下都不必仅依赖一个根。

是否可以拥有一个由多个 CA 签署的证书?

0 投票
0 回答
954 浏览

android - 我如何知道某个证书颁发机构在特定版本的 Android SDK 上是否受信任?

我在任何地方都找不到每个 Android SDK 版本的权限列表。大多数建议建议在已安装的设备上运行一些代码来确定该设备的受信任根权限列表。这根本是不可接受的。如果我们针对某个版本进行测试,我需要知道该版本以及上述每个版本,我们可以使用哪些证书颁发机构?特别是,我们需要在 Android 2.0+ 上信任 CA。

0 投票
2 回答
2452 浏览

javascript - CX509CertificateRequestPkcs10 对象的 InitializeFromPrivateKey() 中的模板参数在尝试特定模板时导致异常

我在X509Enrollment.CX509CertificateRequestPkcs10对象InitializeFromPrivateKey()中指定模板参数时遇到问题。除了“用户”模板之外的任何内容都会导致以下异常:-

CertEnroll::CX509CertificateRequestPkcs10::InitializeFromPrivateKey:此 CA 不支持请求的证书模板。0x80094800 (-2146875392)

我需要使用一个特定的证书模板,当我尝试它时,代码会抛出异常。该模板存在于 CA 和运行以下代码的客户端计算机上。

Javascript代码如下:

其他几个问题
- 我假设模板应该存在于客户端机器上?否则它如何知道 CA 的位置来查询模板?
- 客户端上的 CertEnroll 甚至可以针对 Windows 2003 CA 服务器工作吗?

如果您能帮助我,将不胜感激!!!

附加信息
- 客户端是 Windows 7,MS IE9 客户端以管理员身份运行。
- 通过 HTTPs 访问托管上述页面的 Web 应用程序。
- Web 应用程序托管在 Win2003 CA 服务器上。

在发布之前,我查看了...
- 关于 CertEnroll + InitializeFromPrivateKey 的 Stackoverflow 线程
-关于使用模板 OID 而不是模板名称的博客
- MSDN / alejacma 的站点
- MSDN 上的 CertEnroll API

0 投票
1 回答
2502 浏览

security - 高级 SSL:中间证书颁发机构和部署嵌入式盒子

好的,高级 SSL 女士们和伙计们——我将在两天后为此增加赏金,因为我认为这是一个复杂的主题,任何认真回答的人都值得奖励。

这里的一些假设很简单:假设,或者更准确地说是充满希望的猜测。认为这是一个脑筋急转弯,简单地说“这不可能”是没有意义的。

如果您做过“类似”的事情,欢迎替代和部分解决方案,个人经验。即使我的整个计划有缺陷,我也想从中学到一些东西。

这是场景:

我正在嵌入式 Linux 系统上进行开发,并希望它的 Web 服务器能够提供开箱即用、无障碍的 SSL。这是我的目标设计标准:

必备品:

  • 我不能让用户将我自己的 CA 证书添加到他们的浏览器
  • 我不能让用户将静态生成的(在制造时)自签名证书添加到他们的浏览器
  • 我不能让用户将动态生成的(在启动时)自签名证书添加到他们的浏览器。
  • 我不能默认使用 HTTP 并为 SSL 启用/禁用切换。它必须是 SSL。
  • 嵌入式盒子和网络浏览器客户端可能有也可能没有互联网访问,因此必须假设在没有互联网访问的情况下正常运行。我们可以依赖的唯一根 CA 是操作系统或浏览器附带的根 CA。让我们假设这个列表在浏览器和操作系统中“基本”是相同的——也就是说,如果我们依赖它们,我们将有大约 90% 的成功率。
  • 我不能使用夜间操作,即“ Fast Eddie 的 SSL 证书票据交换所”——价格如此之低,我们的服务器必须被黑客入侵!'

很高兴拥有:

  • 我不希望用户警告证书的主机名与浏览器中的主机名不匹配。我认为这是一个不错的选择,因为它可能是不可能的。

不要:

  • 我不想为每个盒子发送相同的一组静态键。“不能”列表暗示了一种,但我知道风险。

是的,是的,我知道..

  • 我可以并且确实为用户提供了一种机制来上传他们自己的证书/密钥,但我认为这种“高级模式”超出了这个问题的范围。如果用户足够先进,可以拥有自己的内部 CA 或购买密钥,那么他们就很棒,我喜欢他们。

思考时间

我在 SSL 方面的经验是生成由“真实”root 签名的证书/密钥,以及通过制作自己的内部 CA、在内部分发“自签名”证书来加强我的游戏。我知道您可以链接证书,但我不确定操作顺序是什么。即浏览器是否“向上走”链看到有效的根 CA 并将其视为有效证书 - 或者您是否需要在每个级别进行验证?

我遇到了中间证书颁发机构的描述,这让我想到了潜在的解决方案。我可能已经从“简单的解决方案”变成了“噩梦模式”,但是否有可能:

疯狂的想法#1

  • 获取由“真实”CA 签名的中间证书颁发机构证书。( ICA-1 )
    • ROOT_CA -> ICA-1
  • 该证书将在制造时用于为每个盒子生成一个唯一的无密码子中间证书颁发机构对。
    • ICA-1 -> ICA-2
  • 使用 ICA-2 生成唯一的服务器证书/密钥。这里需要注意的是,您能否为 IP(而不是 DNS 名称?)生成密钥/对?即,一个潜在的用例是用户最初通过http 连接到盒子,然后使用重定向URL 中的IP 将客户端重定向到SSL 服务(这样浏览器就不会抱怨不匹配)。这可能是让房子倒闭的卡片。由于必须在任何重定向发生之前建立 SSL 连接,我可以看到这也是一个问题。但是,如果这一切都神奇地起作用了
  • 然后,我可以在盒子更改 IP 的任何时候使用 ICA-2 生成新的证书/密钥对,这样当网络服务器恢复时,它总是有一个“有效”的密钥链。
    • ICA-2 -> SP-1

好吧,你真聪明

最有可能的是,我复杂的解决方案不起作用——但如果它起作用了那就太好了。你有过类似的问题吗?你做了什么?取舍是什么?

0 投票
1 回答
1274 浏览

c# - 使用企业 CA 的 WCF SSL 证书

对于一个应用程序,我需要一个 WCF 服务的 SSL 证书,

所以我们安装了它。如果我通过 https 使用带有网络浏览器的网络浏览器,我没有问题,没有警告,什么都没有,所以我想这个证书被认为对 windows 有效。

问题是当我尝试连接到我的 WCF 服务器时,我收到了这个错误:

L=MyLocation, S=SO, C=CH 建链失败。使用的证书具有无法验证的信任链。更换证书或更改 certificateValidationMode。由于吊销服务器处于脱机状态,吊销功能无法检查吊销。

有什么问题?我怎么知道链条的哪一部分是无效的?有什么方法可以知道缺少的部分是什么?

这是我的代码服务器:

我的客户端:

0 投票
1 回答
5052 浏览

c# - 如何成功注册 certadm.dll 以便能够在 C# 代码中使用 ICertView2

动机

  • 我希望能够从本地计算机上的 Windows CA 检索和查看证书。我不想访问机器的浏览器密钥库,而是 Windows CA(Windows 证书颁发机构(服务))。

  • 我想在 C#-Code 中执行此操作。

到目前为止我的调查
我发现了几个使用以下行的示例:

我想我能够使用这条线和 ICertView2 结构,我达到了我的目标。如果将此行写入我在 Visual Studio 中的 C#-Code 中,它会告诉我,它不知道 ICertView2 和 CERTADMINLib。因此,如果再次搜索 Web 并发现我需要导入参考。我需要 COM 库 certadmin.dll,幸运的是它存在于我的 C:\Windows\System32 文件夹中。
所以我尝试在Solutionexplorer->Project->References->Add Reference->COM 上添加参考。但它没有在那里列出,只有一个外观相似的库,称为“ CertCli 1.0 类型库”。我添加了这个并且还能够输入

但不幸的是,所需的“ ICertView2 ”类不在其中。如果我输入

that should be typed in order to be able to use the ICertView2, Visual Studio says to me, that it also don't know "CERTADMINLib".

Further i found hints on the net, that one need to register the certadm.dll beforehand, in order to make it available in Visual Studio. I tried to register the dll-File, but it doesn't work.

If i invoke the following Command:

and get a Dialogbox telling me the following:
'Error while loading the Module "C:\Windows\System32\certadm.dll". ... The specified Module could not be found.'

The Version of certadm.dll ist "5.2.3790.3959". I'm using "Windows 7 Enterpise SP1".

Can you tell me, how i'm able to register and futher make the appropriate Reference available in Visual Studio?

If i've forgotten further Information, please let me know, so i can add them.