如何:导出和导入公钥证书

Python017

如何:导出和导入公钥证书,第1张

此过程说明如何轻松设置加密示例。方法是从“我的证书”存储中导出公钥证书,而不导出私钥,然后将该公钥证书导入“通讯簿”证书存储。要设置以下示例,请先按照该示例主题中的设置说明操作。这些说明建议使用此主题中的步骤将一个或多个生成的公钥证书放入“通讯簿”证书存储。 如何:为一个收件人封装邮件 如何:为多个收件人封装邮件 如何:签名和封装邮件要在一台计算机上运行上面的示例,需要满足下列条件:“通讯簿”证书存储和“我的证书”存储中均包含邮件收件人的密钥证书该计算机上有邮件收件人的私钥且与“我的证书”存储中的公钥证书关联示例先充当加密邮件的发件人,然后充当同一个加密邮件的收件人。通常,这两个角色是由不同计算机上具有唯一公钥凭据的不同实体充当。在充当加密邮件的发件人时,示例要求“通讯簿”证书存储中包含收件人的证书。在充当加密邮件的收件人时,示例要求“我的证书”存储中包含收件人的证书,并且该计算机上包含相应的私钥。使用Makecert.exe 实用程序设置此示例,可以通过多种方法实现此目的。 Certificate Creation Tool (Makecert.exe) 是用于生成测试证书的一种很方便的实用程序。在生产环境中,证书由证书颁发机构生成。以下Makecert 命令生成所需的公钥证书以及证书使用者名称为“Recipient1”的实体的私钥。证书将放入“我的证书”存储。Makecert -n "CN=Recipient1" -ss My 以下过程说明如何设置证书存储来满足这些要求。首先,生成收件人的证书和私钥,并将证书存储在“我的证书”存储中。然后将证书从“我的证书”存储中导出,再导入“通讯簿”存储。从“我的证书”存储中导出公钥证书打开Internet Explorer。在“工具”菜单上,单击“Internet 选项”,然后单击“内容”选项卡。单击“证书”按钮。在“个人”选项卡中,选择“颁发给”下列出“Recipient1”的证书。(“个人”选项卡列出“我的证书”存储中的证书。)单击“导出”。(此时会打开导出向导。)单击“下一步”。 单击“否,不要导出私钥”,然后单击“下一步”。单击“下一步”接受默认导出格式。键入要导出的证书的文件名或浏览至该文件名,单击“下一步”,然后单击“完成”。将证书导入“通讯簿”证书存储在“证书”对话框中,单击“其他人”选项卡。(“其他人”选项卡列出“通讯簿”证书存储中的证书。)单击“导入”,然后单击“下一步”。键入要存储导出证书的文件名的位置或浏览至该位置,然后单击“下一步”。单击“下一步”接受将导入的证书放入“其他人”证书存储。单击“完成”,然后单击“确定”。

本篇文章中,将描述如何使用go创建CA,并使用CA签署证书。在使用openssl创建证书时,遵循的步骤是 创建秘钥 >创建CA >生成要颁发证书的秘钥 >使用CA签发证书。这种步骤,那么我们现在就来尝试下。

首先,会从将从创建CA开始。 CA会被用来签署其他证书

接下来需要对证书生成公钥和私钥

然后生成证书:

我们看到的证书内容是PEM编码后的,现在 caBytes 我们有了生成的证书,我们将其进行 PEM 编码以供以后使用:

证书的 x509.Certificate 与CA的 x509.Certificate 属性有稍微不同,需要进行一些修改

为该证书创建私钥和公钥:

有了上述的内容后,可以创建证书并用CA进行签名

要保存成证书格式需要做PEM编码

创建一个 ca.go 里面是创建ca和颁发证书的逻辑

如果需要使用的话,可以引用这些函数

panic: x509: unsupported public key type: rsa.PublicKey

这里是因为 x509.CreateCertificate 的参数 privatekey 需要传入引用变量,而传入的是一个普通变量

extendedKeyUsage :增强型密钥用法(参见"new_oids"字段):服务器身份验证、客户端身份验证、时间戳。

keyUsage : 密钥用法,防否认(nonRepudiation)、数字签名(digitalSignature)、密钥加密(keyEncipherment)。

文章来自https://www.cnblogs.com/Cylon/p/16436126.html

jks转为p12,然后再将p12转为pem AndroidStudio使用keystore文件对APK进行签名,但快应用中要求使用PEM文件对RPK进行签名。 现有demo.jks,证书密码为demopwd,转换成pem之后依然使用demopwd作为密码。 提取公钥: 切换到jks证书的存储路径,执行如下命令:keytool -list -rfc -keystore demo.jks -storepass demopwd 如果出现下图的错误提示: 那么请把demo.jks文件拷贝到与keytool.exe文件同目录下,keytool在jdk的bin目录下,拷贝之后cmd切换到bin目录重新执行刚才的命令 然后就能在命令行中看到打印的公钥内容(也即Certificate),如下图 提取私钥: jks文件中的私钥不能直接得到,需要通过openssl将jks文件转换成pkcs12格式后再进行提取。 执行如下命令将demo.jks文件转换成demo.pfx文件: keytool -v -importkeystore -srckeystore demo.jks -srcstoretype jks -srcstorepass demopwd -destkeystore demo.pfx -deststoretype pkcs12 -deststorepass demopwd -destkeypass demopwd 命令执行完成后目录下就会多了一个demo.pfx文件。 然后,执行如下命令便可以将demo.pfx的私钥导出: openssl pkcs12 -in demo.pfx -nocerts -nodes -out demo.key 输入密码后会生成一个demo.key文件,打开查看内容