问题标签 [certenroll]

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 投票
0 回答
249 浏览

c# - 生成与 CA 不兼容的证书

我正在使用这段代码来创建一个请求,该请求将被发送到我的 CA 中进行验证,但是当到达时被拒绝:

使用:

  • .NET 框架 3.5
  • 是一个dll项目
  • IIS 6.0
  • 证书注册.dll
  • 没有可能更新技术

    /li>

对规格有任何疑问,请告诉我。

提前感谢您的帮助!:)

0 投票
0 回答
1036 浏览

c# - C# asp.net CERTENROLLLib PKCS10 创建

我正在尝试创建一个运行上述代码示例的密钥对。我在activex中运行它。我在本地运行这个没有问题,但是当我在我的服务器上安装它时,它不能正常工作,只有当我以管理员身份运行我的 IE 时它才有效。

System.UnauthorizedAccessException: CertEnroll::CX509PrivateKey::Create: 拒绝访问。0x80070005 (WIN32: 5) em CERTENROLLLib.IX509PrivateKey.Create()

关于如何在没有管理员许可的情况下运行它的任何提示?或者还有其他方法可以创建密钥对、发送到 CA 并将证书写入智能卡?

我正在关注此代码: https ://blogs.msdn.microsoft.com/alejacma/2008/09/05/how-to-create-a-certificate-request-with-certenroll-and-net-c/

0 投票
0 回答
2436 浏览

c# - CERTENROLLLib C# 自签名证书问题

我正在尝试在 C# 中创建一个具有不可导出私有的自签名证书,用于加密/解密对称密钥。

现在我最初的尝试是使用充气城堡,另见上一篇文章。现在这行不通,因为我没有发现将私钥明确设置为不可导出的任何运气。

继续前进,我发现了以下堆栈溢出帖子。还在这篇文章的底部发布了我从那里得到的代码。

出于我的目的,我将删除扩展密钥使用部分,将 X509PrivateKeyExportFlags 更改为不可导出并将 X509CertificateEnrollmentContext 更改为 CurrentUser Context。但是,当我这样做时,我得到:

CertEnroll::CX509CertificateRequestCertificate::InitializeFromPrivateKey: 参数不正确。0x80070057 (WIN32: 87 ERROR_INVALID_PARAMETER)

希望有人能帮助我。

删除旧代码 - 请参阅下面的当前版本

编辑:当前状态

将 KeySpec 更改为“AT_KeyEchange”后,我现在得到:

抛出异常:MyTool.exe 中的“System.Runtime.InteropServices.COMException”抛出异常:MyTool.exe 中的“System.NullReferenceException” CertEnroll::CX509PrivateKey::Create:指定的标志无效。0x80090009 (-2146893815 NTE_BAD_FLAGS)。

我更改了它,因为加密/解密不再起作用,认为这是因为 KeySet 模式,但现在我需要进行更多更改。我假设 hashobject 在这里可能不正确?它不应该像 SHA256withRSA 或类似的东西吗?(在我的充气城堡实现中,我使用了:“SHA256WithRSA”。

还是我错过了其他东西?

0 投票
1 回答
335 浏览

c# - 自签名证书:私钥问题

要通过 SslStream 实现 TLS 加密,我使用的是自签名证书。对于从较旧的 Win2003 机器连接的客户端,我遇到了奇怪的“无通用算法”错误。

阅读此主题后,我发现了以下内容:

如果我更改证书生成程序(更具体地说:私钥生成部分),这些错误就会消失:

老的:

新的:

我的问题(可能听起来很愚蠢,对此感到抱歉;我对 TLS & co 还很陌生):

  • 哪些算法在使用此 keySpec 值的私钥上进行中继?我可以在某处看到 SslStream 采用了哪些算法吗?
  • 为什么我必须将密钥长度减少到 1024?上面的任何值都会导致调用 Create() 时发生异常。
  • 我是否会因这些更改而承担安全风险?
  • 也欢迎任何有关修复 Win2K03 机器的建议...
0 投票
1 回答
175 浏览

c# - 手动安装证书和从代码安装有什么区别?

我正在开发一些证书签名工具,我目前的目标是创建方法,该方法将使用现有证书作为颁发者生成新证书。下面是生成证书的方法:

问题是,它工作得非常好,但前提是我手动安装根证书,或使用证书管理器。但我正在尝试从代码中的嵌入式资源安装证书。

这是我提取嵌入式证书以流式传输的方法:

然后我用下一个方法初始化它:

这是我的证书安装方法:

signerCertificate.Initialize根证书似乎已正确安装,但在生成第二个证书时我收到异常“未找到密钥” 。

我正在使用受密码保护的 PFX 根证书。

所以,我的问题是 - 手动安装证书和从代码流中安装证书有什么区别?在代码中安装它时我是否遗漏了某些部分?

0 投票
2 回答
2864 浏览

windows - 代表注册时没有可用的证书

我有一个 WinServer 2008 域控制器和一个 CA 服务器。我使用管理员帐户登录并想“代表”我的 DC 用户申请证书。

为此,起初我复制了这些证书模板:

  • 智能登录
  • 聪明的用户
  • 招生代理

我更改了新模板的配置和权限,以便管理员帐户可以读取、写入和注册这些模板。

在为用户帐户证书和“个人”部分创建这些新模板并从mmc和证书管理单元分配权限和配置后,我们为管理员帐户请求了一个新证书,以使其成为注册代理,如下所示:

图片

那么它的生成就没有问题了,我们想用这个新证书代表用户申请一个证书。但是,在“选择注册代理证书”中,当我们点击“浏览”按钮时,我们遇到了一个问题,因为没有证书可供选择,如下所示:

没有可供选择的证书 图片

我在网上看了很多文档,但我没有找到解决这个问题的原因!

0 投票
1 回答
856 浏览

c# - 以编程方式加载 pfx 文件的问题

我正在尝试创建一个自签名证书,然后在某个时候阅读它。

这是创建 pfx 文件的代码:(源代码)

这是加载它的代码:

问题是我得到:

编码或解码操作期间发生错误。System.Security.Cryptography.CryptographicException

在 System.Security.Cryptography.CryptographicException.ThrowCryptographicException(Int32 hr) 在 System.Security.Cryptography.X509Certificates.X509Utils._LoadCertFromFile(String fileName, IntPtr password, UInt32 dwFlags, Boolean persistKeySet, SafeCertContextHandle& pCertCtx) 在 System.Security.Cryptography.X509Certificates .X509Certificate.LoadCertificateFromFile(String fileName, Object password, X509KeyStorageFlags keyStorageFlags) 在 System.Security.Cryptography.X509Certificates.X509Certificate2..ctor(String fileName, String password)

有任何想法吗?

0 投票
0 回答
64 浏览

vb.net - 网络浏览器控制和注册

嗨,我有一个非常简单的程序,只有一个 webbrowser 控件和一行代码。

这给出了一个关于无法创建 certenroll 对象的 vb 脚本错误/异常。

如果我在 Internet Explorer 中访问相同的 url,则没有问题。

值得我尝试改变 Internet Explorer 中的安全设置,但似乎没有任何区别。

在失败的情况下,页面上的 vb 脚本尝试了大约 3 种不同的方法来创建证书对象,然后如果所有三种方法都出现错误,则会显示一条错误消息,提示允许 activex 对象并关闭保护模式。

在成功的情况下,会出现一个 Web 访问对话框,询问用户是否愿意“允许此站点执行数字证书操作”。

0 投票
1 回答
177 浏览

x509certificate - CertEnroll 509PrivateKey KeyProtection 密码在 W8 W10 中使用客户端证书时不起作用

我们有一个流程,我们的客户通过 CertEnroll 注册 X509 客户端证书。它可以工作,但现在我们的一位客户喜欢增加一层额外的安全性,所以我们在证书中添加了密码。创建证书时会要求用户输入密码,然后每次使用证书时都需要使用密码。它在 Windows 7 中双向工作,但在 Windows 8.1 / 10 中,浏览器都是 IE 11。在 Windows 8.1 / 10 中,当用户申请证书时要求输入密码,但是当证书将被使用时,密码不要求。

希望有人知道这里发生了什么。这是创建证书请求的 javascript。

0 投票
2 回答
922 浏览

c# - 注册一个 X509Certificate2 而不会在机器上留下任何痕迹

目前正在创建证书颁发机构和颁发的证书。请求、注册和验证的生成都是正常的,但是当我检查我的证书存储时,我意识到,它正在将它们放在我的个人证书目录中。出于记忆、安全和法律原因,我不能这样做。

证书存储在安全的远程数据库中。证书可以从集合中随机访问或在随机机器上生成。如果他们生成证书,它将把它们存储在创建证书的任何机器上。有没有办法生成证书注册 (CX509Enrollment) 而不会在机器上留下任何证书的痕迹?

控制注册的部分相对较小且直截了当。它只能以管理员身份运行。我认为那是因为它正在向商店添加证书。

我目前正在运行一个单独的项目文件来尝试调试此问题。我的两个证书都是构建并保存在内存中的。

证书最终在我的个人证书存储中

我当前的证书存储

我的注册发生在这种方法中。它需要一个完全构造和编码的证书请求。

编辑 我目前仅限于.NET 4.5.x。我遇到的另一个问题是,尝试使用 root 签署证书会引发 CRYPT_E_NOT_FOUND 异常。