PHP语言无法直接读取 JKS中的密钥,需要通过以下方法进行转换
本例以JKS中的私钥为例
首先 使用 KeyStore Explorer工具,打开JKS文件 ,此时可能需要输入 JKS密码
对私钥进行导出 Export Private Key, 此时可能 需要输入 密钥密码
导出 为 PKCS#8 格式, 此时需要输入两次 密钥密码 ( 一定要输入)
然后 到命令行 ,使用openssl 再次转换
openssl rsa -in prv.pkcs8 -out prv.pem
此时,此文件即可由PHP使用
$prvKey=openssl_pkey_get_private(file_get_contents("prv.pem"));
使用此私钥进行签名//进行签名 $signature = ''; openssl_sign($data, $signature, $prvKey, 'SHA256'); //返回 签名 return $signature;