Windows Azure管理库在网络工作上的认证错误
我构建了一个Azure Web作业控制台,它正在引用Windows Azure管理库. 我试图使用公共设置方法来验证我的应用. 该程序在我的本地工作正常,但是在X509Certificates错误的Azure Web作业上失败. 这是我为Web作业程序所做的. 从 https://windows.azure.com/azure.com/download/PublishProfile.aspx 在控制台应用程序上,从设置文件中创建凭据和粘贴订阅和证书字符串. new CertificateCloudCredentials( subscriptionId, new 509Certificate2(Convert.FromBase64String(base64EncodedCertificate))); 在Azure Web作业上部署并尝试了"按需运行". 错误 at System.Security.Cryptography.Cr
0 2024-04-16
编程技术问答社区
如何在C#中为DSA密钥对创建一个带有自签名证书的PKCS12 p12文件?
我需要生成自己的DSA Keypair,并将其作为一包私钥和证书存储在.p12文件中. . 这个问题 如何创建PKCS12 .p12 .p12文件在C#? 似乎非常相似,但不幸的是,这对我没有帮助,因为存在一些显着差异(RSA vs dsa等) ) 我正在尝试使用System.Security.cryptography.dsacryptoserviceprovider生成Keypair,然后使用Bouncy Castle生成X509证书: using (DSACryptoServiceProvider csp = new DSACryptoServiceProvider(1024)) { privKeyDSA = csp.ExportParameters(true); pubKeyDSA = csp.ExportParameters(false); var keypair = DotNetUtilities.Ge
0 2024-04-16
编程技术问答社区
生成的有签名的X.509客户证书是无效的(没有到其CA的证书链)
我使用弹力城堡来生成X.509客户证书,并使用已知的CA. 唱歌 首先,我从证书存储中读取CA证书,生成客户端证书,使用CA签名.证书的验证失败了以下问题 无法建立一个可信赖的根授权的证书链. 据我了解,这是由于证书与CA无关的. 这是一个代码样本: public static X509Certificate2 GenerateCertificate(X509Certificate2 caCert, string certSubjectName) { // Generate Certificate var cerKp = kpgen.GenerateKeyPair(); var certName = new X509Name(true,certSubjectName); // subjectName = user var serialNo = BigInteger.ProbablePrime(120, new Random(
0 2024-04-16
编程技术问答社区
忽略JWT中的签名
我有一个使用OpenID Connect的Web应用程序.我创建了一个自签名的证书,但仍未由CA签名. 我如何忽略签名验证? 这是我到目前为止所拥有的: SecurityToken validatedToken = null; var tokenHandler = new JwtSecurityTokenHandler { Configuration = new SecurityTokenHandlerConfiguration { CertificateValidator = X509CertificateValidator.None }, }; TokenValidationParameters validationParams = new TokenValidationParameters() { ValidAudience = ConfigurationManager.AppSettings["Aud
0 2024-04-16
编程技术问答社区
如何在SslStream.AuthenticateAsClient方法中使用证书回调?
我的C#.NET SSL Connect在IE(工具/Internet选项/内容/证书)中手动导入证书时,可以工作,但是如何通过代码加载证书? 这是我的代码: TcpClient client = new TcpClient(ConfigManager.SSLSwitchIP, Convert.ToInt32(ConfigManager.SSLSwitchPort)); SslStream sslStream = new SslStream( client.GetStream(), false, new RemoteCertificateValidationCallback(ValidateServerCertificate), null ); sslStream.AuthenticateAsClient("Test");
0 2024-04-16
编程技术问答社区
带有CA证书的.p12文件能否在C#中使用,而不需要将其导入到证书库中?
我收到了一个.p12证书文件,其中包含3个证书.其中2个是CA证书. 如果我使用卷曲(Win10上的7.70),我可以做: curl -s -s -i -cert swish_merchant_testcertificate_1234679304.p12:swish -cert -type p12 -tlsv1.2---header content -type:application -application/json type:application/json' .getSwish.net/swish-cpcapi/api/v1/paymentrequests" rel =" nofollow noreferrer"> https://mss.cpc.getswish.net/swish-cpcapi/appi/api/api/api/api/api/v1/paymentrequests - data -binary @jsondata.json 卷曲连接到服务器时将使用p
0 2024-04-16
编程技术问答社区
X509Certificate2构造函数 抛出 磁盘上没有足够的空间
突然之间,没有部署或使任何其他环境改变,我们正在获得 磁盘上没有足够的空间. 在system.security.cryptography.cryptographiceception.throwcryptographicexception (MSCORLIB,版本= 4.0.0.0,culture =中性, publicKeyToken = B77A5C561934E089) 在System.Security.Cryptography.x509certificates.x509utils._loadcertfromblob (MSCORLIB,版本= 4.0.0.0,culture =中性, publicKeyToken = B77A5C561934E089) 在System.Security.Cryptography.x509certificates.x509certificate.loadcertificatefromblob (MSCORLIB,版本= 4.0.0.0,cult
0 2024-04-16
编程技术问答社区
在c#中使用带有文件和密钥的X509Certificate
我已向接受SSL连接的服务器提供了证书和密码.我试图与该服务器建立连接,但身份验证失败,主要是因为我不知道如何使用我给出的文件和密码. 这是我的代码: X509Certificate certificate = new X509Certificate( @"c:\mySrvKeystore", KEY_PASSWORD); public static bool ValidateCertificate( object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors errors) { if (errors == SslPolicyErrors.None) return true; Console.WriteLine("Cert
0 2024-04-15
编程技术问答社区
从pem文件加载X509Certificate2。结果是,当作为客户证书使用时,没有证书可用。
我需要向服务器提出请求.此请求需要证书才能访问服务器. 如果我加载P12文件并将其注册为我的HTTP客户端证书.它可以正常工作. var clientCertificate = new X509Certificate2(pathToTestCert, passToTestCert); var handler = new HttpClientHandler(); handler.ClientCertificates.Add(clientCertificate ); 但是,如果我使用CreateFrompemFile从PEM文件加载证书. var clientCertificate= X509Certificate2.CreateFromPemFile(purePem); var handler = new HttpClientHandler(); handler.ClientCertificates.Add(clientCertificate); 我将请求发送到服
0 2024-04-15
编程技术问答社区
Azure API 服务器未能对请求进行认证
我有一个任务(我尝试了工作角色,并上传了一个游戏机应用程序并运行.EXE),该应用程序应每天运行一次,并收集一些我的VM的Azure指标.这在本地完美无缺,但是在云服务上,我会发现此错误: 未经治疗的例外:Microsoft.windowsazure.cloudexception:ForbiddenError:服务器未能对请求进行身份验证.验证证书是否有效并与此订阅相关联.在microsoft.runtime.compilerservices.taskawaiter.throwfornonsucces ...等 发生这种情况的行是: MetricDefinitionListResponse metricListResponse = metricsClient.MetricDefinitions.List(resourceId, null, nspace); 这是我的代码的一部分: string subscriptionId = "fc4x
0 2024-04-15
编程技术问答社区
添加私钥到X509Certificate
我正在处理一些当前使用openssl.net的代码,以创建用于证书签名请求的公共/私钥对.该请求配备了公共密钥,并发送到返回签名证书的CA.然后将先前创建的私钥添加到证书中: myCert.PrivateKey = CryptoKey.FromPrivateKey(rsa.PrivateKeyAsPEM, null); 问题是我需要一个.NET X509Certificate,因为该软件的其余部分使用SSLSTREAM和其他.NET类用于TLS. 我能够从CA的响应中创建证书,但是我找不到将私钥添加到它的方法.我还尝试从CA的响应中创建OPENSL证书,将其作为DER或PEM导出并从中创建.NET证书,但它总是忽略了私钥. 关于我如何解决这个问题的任何想法? 解决方案 我已经创建了一个小型助手Nuget软件包,以创建 X509证书 公共密钥 和 private(rsa)键. // Generate with: openssl req -x509 -sh
0 2024-04-15
编程技术问答社区
我如何从一个已签名的.Net程序集中读取数字签名信息?
我正在编写一个汇编信息应用程序,该应用程序要在我们的软件构建过程中使用,并试图从签名的.NET汇编中读取数字签名信息. 我想在我的C#代码中执行Windows Explorer可以通过右键单击签名的组件并选择"数字签名"选项卡,然后单击详细信息按钮来做什么.例如 有人知道如何在C#中以编程方式进行此操作?我目前正在使用 mono cecil库从大会上获取其余信息.您的帮助将不胜感激. 解决方案 单声道项目提供了 signcode 和 chktrust chktrust chktrust 您可以在自己的应用程序中重复使用(开源,MIT X11许可). 两者都使用Mono.Security.dll汇编(在Windows下工作,而不仅仅是Linux和OSX),并包括一个非常完整的authenticode支持. 其他解决方案 来自此响应: 标志代码(对于.net 1.0和1.1)使用Authenticode签名,该签名为 据我所知,缺少.NET框架托管接口
0 2024-04-15
编程技术问答社区
BouncyCastle PrivateKey 至 X509Certificate2 PrivateKey
我使用Bouncycastle创建证书 var keypairgen = new RsaKeyPairGenerator(); keypairgen.Init(new KeyGenerationParameters(new SecureRandom(new CryptoApiRandomGenerator()), 1024)); var keypair = keypairgen.GenerateKeyPair(); var gen = new X509V3CertificateGenerator(); var CN = new X509Name("CN=" + certName); var SN = BigInteger.ProbablePrime(120, new Random()); gen.SetSerialNumber(SN); gen.S
0 2024-04-14
编程技术问答社区
如何在Https请求中添加客户证书?(C#)
如何在https请求中添加客户端证书?我的代码不起作用. public static IRestResponse AsyncHttpRequestLogIn(string path, string method, object obj) { var client = new RestClient(Constants.BASE_URL + path); // https:.... var request = method.Equals("POST") ? new RestRequest(Method.POST) : new RestRequest(Method.GET); request.RequestFormat = RestSharp.DataFormat.Json; // The path to the certificate. string certificate =
0 2024-04-14
编程技术问答社区
验证JWT签名时出现SecurityTokenSignatureKeyNotFoundException
我正在尝试为我的组织实施OpenID连接规范.我正在使用Microsoft的OWIN实现OpenID Connect在测试依赖方应用程序中来验证我对协议的实现. 我已经暴露了以下元数据文档: { "issuer": "https://acs.contoso.com/", "authorization_endpoint": "http://localhost:53615/oauth2/auth", "token_endpoint": "http://localhost:53615/oauth2/token", "userinfo_endpoint": "http://localhost:53615/connect/userinfo", "jwks_uri": "http://localhost:53615/connect/keys", "ui_locales_supported": [ "en-GB" ] } 签名密钥被视为此文档:
0 2024-04-14
编程技术问答社区
如何检查一个X509证书是否开启了 "扩展验证"?
,如果X509Certificate(或X509Certificate2)具有"扩展验证"(EV)标志集,则我正在努力寻找一种可靠的方法来从C#(.NET 4.0)应用程序检查.有人知道最好的方法吗? 解决方案 您可以检查X509Certificate是否包含其中一个 oid s.此外,您可以检查Chromium的来源中是否已实施的OID列表.您可以找到源在这里.如果您想坚持使用Firefox,则可以抓住实现 a>. 我现在更新了我的来源并进行了测试.我写了一种小方法来验证A X509Certificate2针对Wikipedia/Chromium的OID列表.在这种方法中,我正在使用Wikipedia-list,最好选择Chromium-list. 如何保存OID? 每个CA有一个或多个objectids OId s.正如您可能猜到的那样,它们不是作为扩展名保存的,它们被保存为策略扩展中的条目.为了获得确切的扩展名,建议使用Policy Extension本身
0 2024-04-14
编程技术问答社区
如何创建一个最小的虚拟X509Certificate2?
我正在单位测试.NET应用程序;一些单元测试涉及编程生成x509certificate2对象. 我不在乎实际的签名/私钥/验证内容,我只想有一个对象在检查其字段时不会引发异常的对象.我尝试使用无参数构造函数,但随后访问了一大堆字段.如调试器中所示: objectionName ='(new System.Collections.generic.mscorlib_collectiondebugview(result.certificates)).项目[0] .subjectName'thew type'System.Security.Security.Cryptsopry.Cryptography.cryptography.cryptographysexception' ' ' ' ' ' 我还尝试传递一个字节数组,其中有一些随机数,但这甚至没有构造(数组是否需要是特定的大小?) 所以,问题:最简单的(代码最少的行)是什么是编程方式生成x509certif
0 2024-04-14
编程技术问答社区
缺少'MANAGE PRIVATE KEYS'选项。
我正在开发WCF服务,并在Windows 2008R2下使用IIS 7.5托管的运输安全性.我有一个在IIS 7.5中生成的证书,该证书存储在本地文件夹中. 当我使用basichtpbinding或WSHTTPBIND与运输安全性使用时 - 一切正常.但是,当我将其更改为NetTCP时,我会得到一个例外: CryptographicException 'Keyset does not exist'. 经过一些谷歌搜索后,我发现问题可能是因为我的网络服务IIS帐户没有证书的私钥的排名. 解决方案可能是通过右键单击我的证书并选择"管理私钥"选项来设置MMC中的访问权限.但是选择菜单中没有这样的选择!!!该证书是在管理员帐户下创建的,我在哪里打开了证书 - 它说,它具有私钥.我做错了什么? 解决方案 转到服务器 - >单击"开始" - >运行 - >键入MMC-> enter->选择证书使用本地计算机选项 - >转到Console root->证书 - >证书
0 2024-04-14
编程技术问答社区
如何检索您的X509Store中的所有证书
我正在使用以下代码从ASP.NET WebApp中检索PC中的所有证书.证书集合为空,我不明白为什么. 我尝试模仿自己的用户帐户,但我也没有成功.我在做什么错? var store = new X509Store(StoreLocation.CurrentUser); //StoreLocation.LocalMachine fails too var certificates = store.Certificates; foreach (var certificate in certificates) { var friendlyName = certificate.FriendlyName; Console.WriteLine(friendlyName); } //original problem: fetch a single certificate by its subject name X509Certificate2 clientCertific
0 2024-04-14
编程技术问答社区
将ASN.1数据转换为公钥需要什么? 例如,如何确定OID?
此代码与 dkim签名验证用于抗Spam努力./p> 我有一个s1024._domainkey.yahoo.com的byte[] s1024._domainkey.yahoo.com是ASN.1编码,但我不知道单独的信息是否包含足够的信息来实现公共密钥. 基于,看来我可以将ASN.1密钥转换为X509Certificate公钥,但是我需要提供一个OID和一些ASN.1编码的参数. 在此示例中,我的元数据是ASN1密钥是: RSA编码的键(ASN.1 der-der-der-der-der-der-x660-1997] rsapublickey per rfc3447) 与任何一个SHA1 SHA256哈希算法一起使用 使用与RFC3447 A.2节的下表有关的OID(尽管我不知道如何将此信息转换为完整的OID) /* * 1.2.840.113549.1 * MD2 md2WithRSAEncryption ::= {pkcs-1 2}
0 2024-04-14
编程技术问答社区