问题标签 [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.
c# - 生成与 CA 不兼容的证书
我正在使用这段代码来创建一个请求,该请求将被发送到我的 CA 中进行验证,但是当到达时被拒绝:
使用:
- .NET 框架 3.5
- 是一个dll项目
- IIS 6.0
- 证书注册.dll
没有可能更新技术
/li>
对规格有任何疑问,请告诉我。
提前感谢您的帮助!:)
c# - C# asp.net CERTENROLLLib PKCS10 创建
我正在尝试创建一个运行上述代码示例的密钥对。我在activex中运行它。我在本地运行这个没有问题,但是当我在我的服务器上安装它时,它不能正常工作,只有当我以管理员身份运行我的 IE 时它才有效。
System.UnauthorizedAccessException: CertEnroll::CX509PrivateKey::Create: 拒绝访问。0x80070005 (WIN32: 5) em CERTENROLLLib.IX509PrivateKey.Create()
关于如何在没有管理员许可的情况下运行它的任何提示?或者还有其他方法可以创建密钥对、发送到 CA 并将证书写入智能卡?
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”。
还是我错过了其他东西?
c# - 自签名证书:私钥问题
要通过 SslStream 实现 TLS 加密,我使用的是自签名证书。对于从较旧的 Win2003 机器连接的客户端,我遇到了奇怪的“无通用算法”错误。
阅读此主题后,我发现了以下内容:
如果我更改证书生成程序(更具体地说:私钥生成部分),这些错误就会消失:
老的:
新的:
我的问题(可能听起来很愚蠢,对此感到抱歉;我对 TLS & co 还很陌生):
- 哪些算法在使用此 keySpec 值的私钥上进行中继?我可以在某处看到 SslStream 采用了哪些算法吗?
- 为什么我必须将密钥长度减少到 1024?上面的任何值都会导致调用 Create() 时发生异常。
- 我是否会因这些更改而承担安全风险?
- 也欢迎任何有关修复 Win2K03 机器的建议...
c# - 手动安装证书和从代码安装有什么区别?
我正在开发一些证书签名工具,我目前的目标是创建方法,该方法将使用现有证书作为颁发者生成新证书。下面是生成证书的方法:
问题是,它工作得非常好,但前提是我手动安装根证书,或使用证书管理器。但我正在尝试从代码中的嵌入式资源安装证书。
这是我提取嵌入式证书以流式传输的方法:
然后我用下一个方法初始化它:
这是我的证书安装方法:
signerCertificate.Initialize
根证书似乎已正确安装,但在生成第二个证书时我收到异常“未找到密钥” 。
我正在使用受密码保护的 PFX 根证书。
所以,我的问题是 - 手动安装证书和从代码流中安装证书有什么区别?在代码中安装它时我是否遗漏了某些部分?
windows - 代表注册时没有可用的证书
我有一个 WinServer 2008 域控制器和一个 CA 服务器。我使用管理员帐户登录并想“代表”我的 DC 用户申请证书。
为此,起初我复制了这些证书模板:
- 智能登录
- 聪明的用户
- 招生代理
我更改了新模板的配置和权限,以便管理员帐户可以读取、写入和注册这些模板。
在为用户帐户证书和“个人”部分创建这些新模板并从mmc和证书管理单元分配权限和配置后,我们为管理员帐户请求了一个新证书,以使其成为注册代理,如下所示:
那么它的生成就没有问题了,我们想用这个新证书代表用户申请一个证书。但是,在“选择注册代理证书”中,当我们点击“浏览”按钮时,我们遇到了一个问题,因为没有证书可供选择,如下所示:
没有可供选择的证书
我在网上看了很多文档,但我没有找到解决这个问题的原因!
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)
有任何想法吗?
vb.net - 网络浏览器控制和注册
嗨,我有一个非常简单的程序,只有一个 webbrowser 控件和一行代码。
这给出了一个关于无法创建 certenroll 对象的 vb 脚本错误/异常。
如果我在 Internet Explorer 中访问相同的 url,则没有问题。
值得我尝试改变 Internet Explorer 中的安全设置,但似乎没有任何区别。
在失败的情况下,页面上的 vb 脚本尝试了大约 3 种不同的方法来创建证书对象,然后如果所有三种方法都出现错误,则会显示一条错误消息,提示允许 activex 对象并关闭保护模式。
在成功的情况下,会出现一个 Web 访问对话框,询问用户是否愿意“允许此站点执行数字证书操作”。
x509certificate - CertEnroll 509PrivateKey KeyProtection 密码在 W8 W10 中使用客户端证书时不起作用
我们有一个流程,我们的客户通过 CertEnroll 注册 X509 客户端证书。它可以工作,但现在我们的一位客户喜欢增加一层额外的安全性,所以我们在证书中添加了密码。创建证书时会要求用户输入密码,然后每次使用证书时都需要使用密码。它在 Windows 7 中双向工作,但在 Windows 8.1 / 10 中,浏览器都是 IE 11。在 Windows 8.1 / 10 中,当用户申请证书时要求输入密码,但是当证书将被使用时,密码不要求。
希望有人知道这里发生了什么。这是创建证书请求的 javascript。
c# - 注册一个 X509Certificate2 而不会在机器上留下任何痕迹
目前正在创建证书颁发机构和颁发的证书。请求、注册和验证的生成都是正常的,但是当我检查我的证书存储时,我意识到,它正在将它们放在我的个人证书目录中。出于记忆、安全和法律原因,我不能这样做。
证书存储在安全的远程数据库中。证书可以从集合中随机访问或在随机机器上生成。如果他们生成证书,它将把它们存储在创建证书的任何机器上。有没有办法生成证书注册 (CX509Enrollment) 而不会在机器上留下任何证书的痕迹?
控制注册的部分相对较小且直截了当。它只能以管理员身份运行。我认为那是因为它正在向商店添加证书。
我目前正在运行一个单独的项目文件来尝试调试此问题。我的两个证书都是构建并保存在内存中的。
证书最终在我的个人证书存储中
我的注册发生在这种方法中。它需要一个完全构造和编码的证书请求。
编辑 我目前仅限于.NET 4.5.x。我遇到的另一个问题是,尝试使用 root 签署证书会引发 CRYPT_E_NOT_FOUND 异常。