PKCS12文件和私钥 - PHP

时间:2015-08-26 13:41:40

标签: php ssl x509 phpseclib

我正在使用phpseclib创建一个X509证书,所有这些似乎没问题。一旦我创建了证书,我就使用与证书关联的私钥将其保存为PHP中的pkcs12文件。但是,一旦我读到该文件,我回来的私钥就不同了。键不应该相同吗?

例如,我们打电话说:

openssl_pkcs12_export_to_file($cert , $write_loc, $priv_key , $pass);

效果很好,现在当我用以下文件阅读文件时

openssl_pkcs12_read($write_loc, $certs, $pass);

$ certs [' pkey']中的输出与我传递给上面的export_to_file方法的$ priv_key不同。

当然他们必须是一样的,或者我把两件完全不同的东西混在一起?

谢谢!

1 个答案:

答案 0 :(得分:2)

我认为在PHP RSA key creation

解释了什么

基本上,您使用的是以-----BEGIN RSA PRIVATE KEY-----开头的密钥,并且您使用-----BEGIN PRIVATE KEY-----开始重新获取密钥。

前者是PKCS1格式的私钥,后者是PKCS8格式的私钥。后者具有嵌入base64编码数据本身的私钥类型,而前者具有嵌入在人类可读字符串中的私钥类型。

某些版本的PHP / OpenSSL输出PKCS8密钥,其他版本输出PKCS1密钥..