问题标签 [x509certificate]

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 投票
1 回答
15864 浏览

c# - 如何在 C# 中创建 PKCS12 .p12 文件?

这可能是一个 n00b 问题,但我在这方面并没有任何经验。

我需要创建一个包含 X509 证书和私钥的 p12 包。我目前有两个对象,X509Certificate2 和包含密钥信息的 RSAParameters 对象。如何将这些组合成 p12 文件?

我只是找不到任何有关此的信息。

如果有帮助,我还有一个 RSACryptoServiceProvider 对象,该对象将 RSAParameters 中的参数导入其中。

一些额外的背景。我从我们在这里安装的 VeriSign 注册机构获取我的证书。这是通过创建 PCKS#10 证书请求来完成的。我通过读取 RA 放入数据库的字节数据数组来创建我的证书对象。

PKCS10 代(使用 bouncycastle 库)

证书请求(减去 http 帖子标头)。public_key 参数是 base64 编码、pkcs10 格式的 CSR。(我在每个参数之后都放了换行符,这样在这里更容易阅读,它们在实际的 http 帖子中不存在)

这是 Certificate.GetRawCertDataString() 的输出

这是来自 byte[] array1 = certKey.ExportCspBlob(false) 的数组的内容;

这是来自 byte[] array2 = rsaKey.ExportCspBlob(false) 的数组的内容;

0 投票
6 回答
5655 浏览

java - X.509 证书的序列号

我正在为 uni 类编写 Java 证书颁发机构,现在我不知道证书序列号的最佳选择是什么。

  • 从 0 到veryBigNumber 的简单静态计数器
  • 一些巨大的 BigInt 随机数

有什么好的理由选择一个而不是另一个……或者一个都不选?

谢谢,

0 投票
1 回答
1294 浏览

c# - ICerfiticatePolicy 和 ServicePoint

所以我正在使用 PayPal API。他们要求大公司随每个 SOAP API 请求一起发送 X509Certificate。我从未听说过使用证书,它一直只是将 API 签名与 API 请求一起发送。

所以我首先创建了一个Cerficate实现 .NET的类ICerfiticatePolicy。成员方法之一,实际上您必须实现的唯一方法是:

到目前为止,我很难真正理解传递给这个方法的内容。我猜该方法只是验证证书是否有效。所以我不确定ServicePoint是什么以及传递给它的内容。我认为这是我的 Web 服务引用和代理类,例如PayPalAPIAAInterfaceClient

我还看到一个使用 ServicePointManager.S 的非常古老的示例,但我不明白,即使在查看 MSDN 之后也是如此。所以我猜你要使用 ServicePointManager.ServerCertificateValidationCallback 并且我想将回调设置为 CheckValidationResult?如果是这样,你什么时候这样做?这让我很困惑。

另外,所以我想我创建了我的证书类的一个实例,并通过从我的磁盘读取 P12 证书来设置证书属性,然后将其传递给这个方法以检查它是否有效?我想这是对的。

我仍在试图弄清楚这整个事情,我真的被困在 ServicePoint 和 WebRequest 上,因为我真的在 PayPal 中使用了一个代理类,它在引擎盖下发送请求。所以我看不出我怎么能传入类型 WebRequest ,因为无论如何我都在使用代理方法。那么我什至会为 WebRequest 参数传递什么?我在这里使用的是 SOAP API WSDL,而不是 NVP,因此我不会像使用 REST 服务那样创建一个 HttpWebRequest 变量,以便通过 Http 发送 API 请求。

到目前为止,这是我尝试过的:

问题是,我应该为 ServicePiont 和 CheckValidationResult 的其余参数传递什么?我什至不知道我说得对不对。

0 投票
1 回答
261 浏览

x509certificate - 错误:未在此范围内声明“CERT_STORE_PROV_MEMORY”

我是 Windows XP 新手,我正在尝试学习如何编写一些 C、C++ 来操作证书和使用 IPsec。

我没有XP SDK,所以我抓住了mingsys和mingw来访问gcc、g++。

谁能告诉我 CERT_... 的东西是在哪里声明的?我假设它是一个“.h”文件,或者是由#include 访问的东西。

麦克风

0 投票
1 回答
1522 浏览

iphone - HowTo:使用证书身份验证对 WCF 服务的 iPhone Web 服务调用

我们是一家 .Net 商店,目前正在开发一个 iPhone 应用程序,该应用程序需要该应用程序调用 WCF Web 服务。我们的 WCF 服务使用用于身份验证的 x509 证书进行保护。

我一直在互联网上搜索有关如何执行以下操作的示例:

  1. 使用 iPhone 应用程序部署证书。
  2. 在对 WCF 服务的 Web 服务调用中使用该证书。

任何关于如何实现这一点的见解将不胜感激。

0 投票
2 回答
6008 浏览

c# - 将 X509Certificate2 存储在 DB 中

是否可以将 X509Certificate2 存储在 SQL Server 表中,而不是从文件系统中提取 .p12 文件?我相信你可以,但不确定如何去做。

0 投票
2 回答
8235 浏览

java - 带有 X.509 证书的 Spring Security

我正在慢慢发疯,试图配置 Spring Security 3.0.0 来保护应用程序。

我已将服务器(码头)配置为要求客户端身份验证(使用智能卡)。但是,我似乎无法正确执行 applicationContext-security.xml 和 UserDetailsS​​ervice 。

首先,从应用程序上下文文件中:

UserDetailsS​​ervice 如下所示:

}

该应用程序有一个带有登录按钮的“首页”,因此访问该页面不需要任何类型的身份验证。

任何帮助表示赞赏。

0 投票
2 回答
4461 浏览

wcf - 如何将 WCF 服务配置为仅接受由 x509 证书标识的单个客户端

我有一个 WCF 客户端/服务应用程序,它依赖于两台机器之间的安全通信,我想使用安装在证书存储中的 x509 证书来相互识别服务器和客户端。我通过将绑定配置为<security authenticationMode="MutualCertificate"/>. 只有客户端机器。

服务器在本地计算机/个人存储中安装了颁发给 server.mydomain.com 的证书,客户端在同一位置安装了颁发给 client.mydomain.com 的证书。除此之外,服务器在本地计算机/受信任的人中拥有客户端的公共证书,客户端在本地计算机/受信任的人中拥有服务器的公共证书。

最后,客户端已配置为检查服务器的证书。我使用system.servicemodel/behaviors/endpointBehaviors/clientCredentials/serviceCertificate/defaultCertificate配置文件中的元素做到了这一点。

到目前为止一切顺利,这一切都有效。我的问题是我想在服务器的配置文件中指定只允许使用来自受信任的人证书存储的 client.mydomain.com 证书标识自己的客户端连接。

正确的信息在使用ServiceSecurityContext.

那可能吗?任何提示将不胜感激。

顺便说一句,到目前为止,我的服务器的配置文件如下所示:

0 投票
4 回答
18198 浏览

certificate - 新机器的证书问题 - 提供给包裹的凭据无法识别

我正在新机器上安装 Windows 服务。该服务通过 TCP 上的 SslStream 执行各种操作,该服务使用有问题的证书。

该服务在其他 2 台 windows 2003 机器上使用相同的代码和相同的证书运行良好。但是,这台新机器也是Windows 2003 64 位处理器。

当我尝试使用“服务帐户”身份运行服务时遇到了这个问题。它适用于我自己的凭据。(同样,它在其他 2 台使用此服务帐户的机器上运行良好)

导入证书时我没有启用“强保护”。

这是堆栈跟踪。

System.ComponentModel.Win32Exception:在 System.Net.Security.SecureChannel.AcquireCredentialsHandle(CredentialUse credUsage, SecureCredential&secureCredential) 在 System.Net.Security.SecureChannel.AcquireClientCredentials(Byte[]& thumbPrint) 在 System.Net.Security.SecureChannel.GenerateToken(Byte[] input, Int32 offset, Int32 count, Byte[]& output) 在 System
System.Net.Security.SslState.StartSendBlob(Byte[] 传入,Int32 计数,AsyncProtocolRequest asyncRequest)处的.Net.Security.SecureChannel.NextMessage(Byte[] 传入,Int32 偏移量,Int32 计数)
在 System.Net.Security.SslState.ProcessReceivedBlob(Byte[] buffer, Int32 count, AsyncProtocolRequest asyncRequest)
在 System.Net.Security.SslState.StartReadFrame(Byte[] buffer, Int32 readBytes, AsyncProtocolRequest asyncRequest)
在 System.Net.Security .SslState.StartReceiveBlob(Byte[] buffer, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.CheckCompletionBeforeNextReceive(ProtocolToken message, AsyncProtocolRequest asyncRequest) at System.Net.Security.SslState.StartSendBlob(Byte[] incoming, Int32 count, AsyncProtocolRequest asyncRequest)
在 System.Net.Security.SslState.ForceAuthentication(Boolean receiveFirst, Byte[] buffer, AsyncProtocolRequest asyncRequest)
在 System.Net.Security.SslState.ProcessAuthentication(LazyAsyncResultlazyResult) 在 System.Net.Security.SslStream.AuthenticateAsClient(String targetHost, X509CertificateCollection clientCertificates, SslProtocols enabledSslProtocols, Boolean checkCertificateRevocation)

0 投票
2 回答
4036 浏览

openssl - 适用于没有 Visual C++ 2005/2008 Redistributables 的 Windows 的 OpenSSL 二进制文件

我想使用Shining Light Productions的 Win32 OpenSSL 二进制文件来生成自签名证书。不幸的是,我的 PC 有更新版本的 Visual C++ 2008 Redistributables,而不是 Shining Light Productions 推荐的版本。

由于我在下载页面上没有看到任何静态构建,因此不需要 Visual C++ 2005/2008 Redistributables 的最新版本的 Win32 OpenSSL 二进制文件是什么?

PS。我知道生成 SSL 证书的替代方法,我只对 OpenSSL 二进制文件感兴趣。