Cryptography 如何使用X509证书(通过简单验证和其他问题签署文件)
昨天我花了几个小时试图使用X509证书(thawte的“免费邮件”证书之一)对一个短文件进行数字签名。我终于让openssl将其作为SMIME消息进行签名,但我无法成功验证它,而且它是SMIME格式的--我没有访问“sendmail”程序的权限,该程序实际上可以发送SMIME文件 我只想创建一些通过简单剪切和粘贴“可摘录”的文件,如:Cryptography 如何使用X509证书(通过简单验证和其他问题签署文件),cryptography,openssl,x509,Cryptography,Openssl,X509,昨天我花了几个小时试图使用X509证书(thawte的“免费邮件”证书之一)对一个短文件进行数字签名。我终于让openssl将其作为SMIME消息进行签名,但我无法成功验证它,而且它是SMIME格式的--我没有访问“sendmail”程序的权限,该程序实际上可以发送SMIME文件 我只想创建一些通过简单剪切和粘贴“可摘录”的文件,如: ===BEGIN SIGNED DOCUMENT=== ===BEGIN DOCUMENT=== blah blah blah this is the plain
===BEGIN SIGNED DOCUMENT===
===BEGIN DOCUMENT===
blah blah blah this is the plaintext ...
===END DOCUMENT===
===BEGIN SIGNATURE===
AFab12121abadAF ...
===END SIGNATURE===
===END SIGNED DOCUMENT===
或者,我想我可以制作一个包含原始文件和签名的.zip文件
所以我想我的要求是:
编辑:thawte不容易让您直接使用证书请求;相反,它与web浏览器(我使用Firefox)通信&这些浏览器生成私钥并处理所有证书协议。因此,我可以将其导出为PKCS12文件,但不确定如何使用它。首先,您可能需要了解私钥、公钥和证书之间的区别。证书是在声明“公钥XX属于人YY”上使用CAs私钥的签名。如果您使用私钥签名,则可以使用公钥验证签名,并且信任CA的第三方可以断定签名是由您签名的 如果生成S/MIME消息并将其作为扩展名为.p7s的文件附加,大多数邮件程序可能都能够验证它 如果您希望完全控制您正在做的事情,我的经验是围绕PGP格式的工具可以为您提供更好的控制(与实现S/MIME协议的邮件程序相比) 所以我可以将其导出为PKCS12文件,但不确定如何使用它 如果使用openssl工具,则可以使用以下命令
openssl pkcs12 -in file.p12 -out file.pem
将其转换为pem格式
编辑:
我很难弄清楚PEM和PKCS12以及所有这些东西之间的不同之处
PKCS#12文件只是证书和密钥的容器。如果您想查看它包含的内容(至少加密部分除外),可以使用以下工具:。从浏览器导出的PKCS#12文件将包含加密格式的私钥、证书以及构成信任CA链所需的CA证书
同样,PEM文件可以包含证书和密钥。在PEM文件中,证书和密钥是base64编码的,并放置在一些文本分隔符中(PKCS#12文件使用名为ASN.1的二进制编码来构造文件-您可以将ASN.1视为XML的二进制形式。您遇到的大多数加密结构都是使用ASN.1编码的)。除此之外,两种格式之间唯一的真正区别在于PKCS#12包含完整性检查,否则两种格式是等效的
OpenSSL最适合PEM,而大多数浏览器和电子邮件应用程序都希望使用PKCS#12,但您可以在两种格式之间自由转换。我知道了这一点,但我很难弄清楚PEM和PKCS12以及所有这些东西之间的不同之处。这就像把管道连接在一起,形成一个环状的圆圈和结。我可以找出如何建立个人联系,但总体情况令人困惑。