x509 相关问题

在加密中,X.509是用于单点登录(SSO)和权限管理基础结构(PMI)的公钥基础结构(PKI)的标准。

Kubernetes 使用哪个证书和密钥来签署证书签名请求?

我试图自动化为新用户签署 Kubernetes 证书的过程。 官方文档(此处)建议使用 Kubectl。他们特别建议使用以下命令: kubectl

回答 2 投票 0

Azure IoT 设备配置服务 – 设备注册 C# SDK – “找不到 CA 证书”

参考链接中的示例 - X509 注册组指南使用证书链 我正在尝试创建一个安静的服务(.net7 web api),它执行以下三件事: 上传根证书...

回答 1 投票 0

Powershell 和 System.Security.Cryptography.X509Certificates.X509Certificate2

当我运行 system.security 命名空间时遇到此错误。这就是我正在追求的 $cert=新对象 System.Security.Cryptography.X509Certificates.X509Certificate2("C:\mycert.cer") ...

回答 4 投票 0

解析X509 DSS证书得到P、Q、G和Y

我正在尝试解析包含数字签名算法(DSA)公钥的X509证书。 使用 javax.security.cert.X509Certificate 类和 getPublicKey() 方法我能够...

回答 1 投票 0

如何使用 Kubernetes go-client 批准证书签名请求

我目前正在尝试在 Kubernetes 集群上创建证书签名请求资源,然后批准它。我正在使用 go-client 执行此操作,但我面临审批专家的问题...

回答 2 投票 0

如何在SslStream.AuthenticateAsClient期间从X509Certificate对象中提取域名? (.NET4)

我有一个由 SslStream.AuthenticateAsClient 调用的 RemoteCertificateValidationCallback 函数,该函数传递一个 X509Certificate 对象。 我想从该证书中提取名称,例如......

回答 4 投票 0

在 go 中创建具有特定主题顺序的 CSR

我正在尝试使用加密库在 go 中创建证书签名请求。生成的 CSR 的主题为“主题:C = IN、L = loc、O = 示例组织、OU = OU1 + OU = OU2、CN =

回答 1 投票 0

使用CA.crt创建自签名证书

我现在正在尝试编写代码来创建证书。在openssl中,其制作类似于openssl x509 -req -CAkey key.pem -CA CA.CRT -CAcreateserial -in csr.csr -req -days 365 -out cert.CRT -extfile config.conf -

回答 1 投票 0

使用 OpenSSL API 以编程方式验证证书链

这与其他问题非常相似,但我看过的问题要么没有答案,要么没有提出相同的问题。我有一个自签名的 CA 证书,还有另外两个证书...

回答 7 投票 0

OpenSSL 作为 CA,无需触及 certs/crl/index/etc 环境

我认为我有正确的 OpenSSL 命令来签署证书,但我陷入了困境,并且我发现的教程使用了不同的参数格式(我正在使用 OpenSSL 0.9.8o 01 Jun 2010)。 openssl ...

回答 3 投票 0

coldfusion:ws-security X.509 / SOAP 加密

我是coldfusion程序员,没有JAVA知识经验。 我正在处理一个小项目,从网络服务中获取一些信息。我们正在使用 Coldfusion 服务器 9。 SSL 证书 /

回答 1 投票 0

获取CA证书,用于检查服务器证书

我有一个简单的控制台应用程序(.NET / C#),它正在创建 TLS 连接。连接正常,我可以向服务器发送 ping 信号,服务器将用 pong 进行回复。发送和接收的代码...

回答 1 投票 0

有谁知道如何在 SOAP WSSE 标头的 BinarySecurityToken 中生成 X509PKIPathv1 的 ValueType 吗?

在 SoapUI 中,我正在发送一个 SOAP 请求,其中我使用 BinarySecurityToken 构造了一个 WSSE 标头,我将其理解为 base64 编码的客户端证书,采用 PKCS12 格式。然而...

回答 1 投票 0

如何在.NET中以编程方式创建X.509证书?

我想在 .NET 中创建一个新的 X.509 证书,以满足我设置的哈希算法和密钥长度要求。这将是一个自签名证书。创建新证书可能会创建...

回答 1 投票 0

在Go(Golang)中使用digitorus/pdfsign签署pdf文件

在 go (golang) 中,我需要签署 pdf 文档,但与其他语言不同的是,没有库可以让这项工作变得更容易。我找到了几个付费的,但它们不是一个选择。 首先,我...

回答 1 投票 0

将 HttpClient 与 .NET 6 C# 一起使用,我在发出 http post 请求时遇到解密错误

我遇到以下异常: System.IO.IOException:解密操作失败,请参阅内部异常。 System.ComponentModel.Win32Exception(0x80090326):收到的消息是

回答 1 投票 0

如何创建 ISignatureFactory 来创建自签名证书

我正在尝试使用c#生成X509Certificate2。 我发现了这个答案,这就是我正在寻找的。但是,该代码使用绝对方法。 SetSignatureAlgorithm 方法具有

回答 1 投票 0

python创建签名X509

我想知道如何使用python创建签名X509。 我找不到任何好的例子来解释如何使用 python 生成这样的签名。 目标是拥有一些东西

回答 2 投票 0

PHP 使用公共证书验证签名字符串

根据下面非常有用的评论,我重写了这个问题。 使用 https://www.php.net/manual/en/function.openssl-verify.php 中的代码作为示例: 根据下面非常有用的评论,我重写了这个问题。 使用https://www.php.net/manual/en/function.openssl-verify.php中的代码作为示例: <?php // $data is assumed to contain the data to be signed // fetch certificate from file and ready it $fp = fopen("path/file.pem", "r"); $cert = fread($fp, 8192); fclose($fp); // state whether signature is okay or not // use the certificate, not the public key $ok = openssl_verify($data, $signature, $cert); if ($ok == 1) { echo "good"; } elseif ($ok == 0) { echo "bad"; } else { echo "ugly, error checking signature"; } ?> 我们正在开发一个项目,我们接收包含“签名”的数据。这是数据 (UTF8) 的已知部分,已由发送者使用私有 x.509 证书和 base64 编码进行签名。作为数据的一部分,我们收到他们的 Base64 公共证书。 我们可以根据发送的信息构建“检查数据”($data),并且我们收到了$signature,因此使用上面的代码示例应该可以工作,但是...... 上面的示例从 PEM 文件中获取证书,但我们只是获得了 Base64 编码的公共证书。 以前没有使用过此类东西,如何处理 Base64 证书以便我可以将其用作上面代码中的 $cert ? 编辑: 感谢@Sammitch 对证书的澄清。我现在可以从证书访问公钥。然而,openssl_verify仍然无法验证,我想知道这是否是因为原始无符号数据是如何组合在一起的。 openssl_verify 要求 $data 是字符串,但在本例中,数据创建如下: 签名前缀是动词、目的地和日期时间戳的串联,所以类似于: POST;https://example.com/webhook;2023-10-12T20:53:50+00:00 然后将其转换为字节。 执行此操作的 VB.Net 流程是这样的: Dim signaturePrefix As String = verb + ";" + Destination + ";" + SignatureDate + ";" Dim signaturePrefixBytes As Byte() = Encoding.UTF8.GetBytes(signaturePrefix) Dim originalLength As Integer = signaturePrefixBytes.Length Array.Resize(signaturePrefixBytes, originalLength + hashBytes.Length) Array.Copy(hashBytes, 0, signaturePrefixBytes, originalLength, hashBytes.Length) 发送的 JSON 的哈希值也会转换为字节,然后合并两个字节数组。然后使用发送者的 X509 证书对该合并值进行签名。 所以...鉴于openssl_verify要求$data是一个字符串,但这是一个字节数组,我该如何使用openssl_verify来验证签名? 我们已经找到了问题的根源,并且这个解决方案有效: <?php // Obtain the necessary headers and context variables $sentSignatureBase64 = "rYYN6S87D3###REDACTED###MfVYeWA=="; $publicCertBase64 = "MIIHA###REDACTED###O0m/kRrA="; $signedTimestamp = "2023-10-16T12:00:30+01:00"; $contentHashBase64 = "PT8Zbb###REDACTED###PeZEZ3Tc="; $verb = "POST"; $destination = "https://webhook.site/###REDACTED###"; $body = "[{\"payload\":{###REDACTED###}}]"; try { // Create Certificate $public_key_pem="-----BEGIN CERTIFICATE-----\n". wordwrap($publicCertBase64, 64, "\n", false) ."\n-----END CERTIFICATE-----"; $publicCertificate = openssl_pkey_get_public($public_key_pem); echo "public_key_pem---------".PHP_EOL; echo $public_key_pem.PHP_EOL; echo "---------".PHP_EOL; echo "Key Details---------".PHP_EOL; $keyData = openssl_pkey_get_details($publicCertificate); var_dump($keyData); echo "---------".PHP_EOL; // Get bytes for the sent signature $sentSignatureBytes = base64_decode($sentSignatureBase64); // Build the signature prefix based on the received data $receivedSignaturePreifx = $verb . ";" . $destination . ";" . $signedTimestamp . ";"; echo "\$receivedSignaturePreifx = ".$receivedSignaturePreifx.PHP_EOL; // Get the SHA-256 hash of the body $body = empty($body) ? "{}" : $body; $hashBytes = hash('sha256', $body, true); // Combine the two sets of bytes $combinedBytes = $receivedSignaturePreifx . $hashBytes; // Verify the signature $isSignatureValid = openssl_verify($combinedBytes, $sentSignatureBytes, $publicCertificate, "sha256WithRSAEncryption") === 1; if (!$isSignatureValid) { $problemDetail = array( "statusCode" => 401, "detail" => "Signature failed validation.", "isSignatureValid" => $isSignatureValid ); echo json_encode($problemDetail); return; } $results = array( "detail" => "Successful verification.", "isSignatureValid" => $isSignatureValid ); echo json_encode($results); } catch (Exception $ex) { $problemDetail = array( "statusCode" => 500, "detail" => "Error while decrypting signature: " . $ex->getMessage() ); echo json_encode($problemDetail); return; } ?>

回答 1 投票 0

使用 Java 中的 Bouncy Castle 自签名 X509 证书

我需要使用 Java 中的 Bouncy Castle 创建自签名 X509 证书,但我尝试包含的每个类均已弃用。 我该如何解决这个问题?还有其他课程要包括吗? 谢谢

回答 5 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.