标签: pki

公钥如何验证签名?

我正在努力更好地解决公钥/私钥的工作方式.我知道发件人可以使用他/她的私钥向文档添加数字签名,以基本上获取文档的哈希值,但我不明白的是如何使用公钥来验证签名.

我的理解是公钥加密,私钥解密......任何人都可以帮我理解吗?

pki digital-signature public-key-encryption public-key private-key

141
推荐指数
5
解决办法
6万
查看次数

如何使用OpenSSL提取公钥?

以下命令生成一个包含公钥和私钥的文件:

openssl genrsa -des3 -out privkey.pem 2048
Run Code Online (Sandbox Code Playgroud)

来源:这里

使用OpenSSL,私钥也包含公钥信息,因此不需要单独生成公钥

我们如何从privkey.pem文件中提取公钥?

谢谢.

openssl pki public-key-encryption

112
推荐指数
3
解决办法
15万
查看次数

将自签名证书添加到iphone Simulator?

我在API的端点上有一个自签名证书.我正在尝试使用模拟器测试一些东西,但我得到"不受信任的服务器证书".

我试图在模拟器上使用safari下载.crt文件,但这似乎不起作用.

iPhone模拟器从哪里获得钥匙串?如何添加可信证书以使我的应用程序正常运行?

UPDATE

我通过创建CA然后使用iPhone配置工具添加CA证书来实现它.然后我能够在API服务器上获得由该CA证书签名的证书,并且NSConnection正常工作.由于某种原因,我无法使用自签名证书使其工作.我需要使用配置软件重新尝试此操作.

我真正的问题是如何让它在模拟器上运行?我认为模拟器使用实际计算机的钥匙串.

iphone ssl pki keychain ios-simulator

75
推荐指数
7
解决办法
4万
查看次数

是否可以仅使用C#以编程方式生成X509证书?

我们正在尝试使用C#和BouncyCastle库以编程方式生成X509证书(包括私钥).我们尝试使用Felix Kollmann的这个示例中的一些代码,但证书的私钥部分返回null.代码和单元测试如下:

using System;
using System.Collections;
using Org.BouncyCastle.Asn1;
using Org.BouncyCastle.Asn1.X509;
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Crypto.Generators;
using Org.BouncyCastle.Crypto.Prng;
using Org.BouncyCastle.Math;
using Org.BouncyCastle.Security;
using Org.BouncyCastle.X509;

namespace MyApp
{
    public class CertificateGenerator
    {
        /// <summary>
        /// 
        /// </summary>
        /// <remarks>Based on <see cref="http://www.fkollmann.de/v2/post/Creating-certificates-using-BouncyCastle.aspx"/></remarks>
        /// <param name="subjectName"></param>
        /// <returns></returns>
        public static byte[] GenerateCertificate(string subjectName)
        {
            var kpgen = new RsaKeyPairGenerator();

            kpgen.Init(new KeyGenerationParameters(new SecureRandom(new CryptoApiRandomGenerator()), 1024));

            var kp = kpgen.GenerateKeyPair();

            var gen = new X509V3CertificateGenerator();

            var certName = new X509Name("CN=" + subjectName); …
Run Code Online (Sandbox Code Playgroud)

c# bouncycastle pki x509certificate x509

40
推荐指数
2
解决办法
3万
查看次数

证书中的"主题"是什么意思?

相关链接是这篇MSDN文章.

我总是对术语"主题"感到困惑,例如,sk选项"指定主题的密钥容器位置",sr选项"指定主题的证书存储位置".主题到底意味着什么?证书所有者?证书颁发者(例如颁发证书的根CA)?或者是其他东西?

certificate pki x509

32
推荐指数
4
解决办法
8万
查看次数

哪些书可以帮助我学习有关SSL/PKI的所有内容?

由于SSL是安全互联网的支柱,(现在技术上称为TLS),我应该阅读哪些好书来理解它的各个方面?

我想我还需要学习一些数学,一些PKI书籍,加密书和Sysadmin书籍.由于这不是一个完整的清单,我有兴趣听听你认为明智的学习内容.

ssl openssl pki ssl-certificate

32
推荐指数
3
解决办法
2万
查看次数

在唯一标识用户时使用哪些客户端证书?

我正在设计一个系统,除了用户名/密码验证之外,用户还可以注册并随后使用客户端证书进行身份验证.

客户端证书必须是由配置的证书颁发机构列表颁发的有效证书,并在出现时进行检查(验证).

在注册阶段,我需要将客户端证书的一部分存储在用户存储库(DB,LDAP,等等)中,以便我可以将使用客户端证书进行身份验证的用户映射到内部"用户".

一个相当明显的选择是使用证书指纹; 但指纹本身是不够的,因为可能会发生冲突(即使它们不可能),因此我们需要存储证书中的其他信息.这个SO问题在这方面也提供了信息.

RFC 2459定义(4.1.2.2)证书序列号在给定CA中必须是唯一的.

综合所有这些,我正在考虑为每个注册用户存储证书序列号和证书颁发者.鉴于客户端证书将被验证并且有效,这应该唯一地标识每个客户端证书.这样,即使续订客户端证书,它仍然有效(序列号保持不变,发行者也是如此).

我错过了什么?

security authentication pki x509certificate

27
推荐指数
1
解决办法
9942
查看次数

与Web服务的相互身份验证

目前,只要客户端使用Web浏览器访问网站,我就成功实现了相互身份验证安全性,因为浏览器会为您处理所有证书交换.现在,我需要创建一个安全的界面,用户可以使用服务器所需的相互身份验证通过HTTPS访问Web服务.

首先,有没有人知道的资源可以帮助我吗?我已经找了很长时间没找到.任何其他人可以给我如何解决这个问题的提示?

其次,我认为我最大的障碍是我对如何处理证书缺乏了解.如何协商接受服务器密钥并将自己的密钥提供给服务器?这是Java.

java authentication web-services pki mutual-authentication

22
推荐指数
4
解决办法
4万
查看次数

为什么Apache需要SSLCertificateKeyFile?

需要SSLCertificateKeyFile的技术原因是什么(私钥)?那里使用的是什么?

apache security pki

22
推荐指数
2
解决办法
3万
查看次数

带有主题备用名称的OpenSSL V3

我正在使用OpenSSL命令行工具生成自签名证书.除了两个问题外,它似乎正常工作.我无法用主题替代名称(关键)创建一个.cer并且我无法弄清楚如何创建一个版本3的证书(不确定这是否至关重要,但更愿意学习如何设置版本).

有人做过这个吗?默认配置(.cfg)文件看似清晰(见下文):

"这个东西是为subjectAltName和issuerAltname.导入电子邮件地址.subjectAltName = email:copy"

但这不起作用.我的预感是主题备用名称没有显示b/c它没有出现在V1规格中,这就是为什么我也在追求设置他的版本.

这是我正在使用的配置文件:

[ req ]
default_bits        = 2048 
default_keyfile     = privkey.pem 
distinguished_name  = req_distinguished_name
emailAddress        = myEmail@email.com
req_extensions          = v3_req
x509_extensions         = v3_ca

[req_distinguished_name]
C = [Press Enter to Continue]
C_default = US 
C_min = 2 
C_max = 2 

O = [Press Enter to Continue]
O_default = default 

0.OU=[Press Enter to Continue]
0.OU_default = default 
1.OU=[Press Enter to Continue]
1.OU_default = PKI 
2.OU=[Press Enter to Continue] 
2.OU_default = ABCD
commonName = Public FQDN of server …
Run Code Online (Sandbox Code Playgroud)

openssl certificate pki x509

20
推荐指数
4
解决办法
6万
查看次数