openssl pem证书 转换为p12类型证书

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了openssl pem证书 转换为p12类型证书相关的知识,希望对你有一定的参考价值。

原来服务器是用C写的,使用的是pem证书,客户端是用java写的。现在C服务器 也改用java, 我拿到了pem文件把他转换为p12类型的证书,在tomcat上面配置完毕,现在问题来了,使用tomcat6.0+jdk1.6的客户端可以正常使用, 而使用tomcat5.0+jdk1.4的客户端使用则报错 :no trusted certificate found。有大神 知道是为什么吗?怎么解决,除了升级jdk, 我都快疯了,跪求!!!

我找到的一个方法是 :生成pem ->生成csr->生成crt->生成der->生成p12

以下是那个博客的方法:

生成强度是 1024 的 RSA 私钥
$ openssl genrsa -out private.pem 1024

执行以代码生成一个私钥,Pem文件,其实Pem文件就是一般的文本格式~看下图~
这是文件:

选择一个文本编辑器打开次文件可以看到其就是一个普通的文本:
-----BEGIN RSA PRIVATE KEY-----
MIICXAIBAAKBgQCfwtWJLpe9QQiBOA/kDVdYGDYko6ieGfaIHiqiHd7Ul13k4gI+
1NgL6SfO/UAhKL6rAwTk9t8/V0bIrbCTBL6hMLc4yJkBFbDK7eLoJNnxaUwl2pLL
BSiTZQQ8vsBC6myUiZDFdCfl2PWvfEMzMYNsCob2Mw4MYWJwNub+MYe7PwIDAQAB
AoGAc8jXy5FKBa5BRK1lzujgWYdKjilSRisY4jPCwDWXzklZkk0+RV0qqw8ye7BN
LvsBnJ0Wif5lc9mEAmLnKtXwdWrHKEi70s69mZZH+ssaP3SGAEug3tY2ojSYixmB
+dWyslVb3dVzxr56fMJLfCBGAhqhmXgy79ruIbnKrDqo6kkCQQDPYCIZRlI0tREa
4y+E2YUqx/x6XPohlJUQoZBJQ3Zt0RQ+afljNxlSOiL4pw9GLwoDhatxzjlMUMnb
b36mP1plAkEAxTib34YEp5nkwpbZ5roAfKRmKgUnezULVCDKS/KiamXURwAUwGGU
aVy9o1akS48C42gsF+NtOe9yq1z9sj6y0wJBAICLZpekL3DcjC3OhbYj35gVPzva
RnJqV7xnabkASHjqEVJe/mexz9BYmTTo2V736Y0lXpC89GeJ7JZJFoiW3MECQDyM
4cZhpiIy7HoVyHa/GpEqBDfYd0OriHveyV1B9D2IYAEgdD6QdvlWQN7aJf0Q vklF
XWxEJe/IpUMZfMZx24MCQDu19hNYYg8863mvGbc7jWAY1Apjx1i/KTXe/6rBjmoS
bxoSEpKNHpW6dgL/6S6WQuB8j3tNUUNj5O99cU6DLsM=
-----END RSA PRIVATE KEY-----

接着跟着笔者一起执行下面的操作吧~

创建证书请求
$ openssl req -new -key private.pem -out rsacert.csr

这时候控制条要求输入以下一些个人信息~那就跟着提示来吧~
Country Name (2 letter code) [AU]:CN
State or Province Name (full name) [Some-State]:beijing
Locality Name (eg, city) []:beijing
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Erma
Organizational Unit Name (eg, section) []:com
Common Name (e.g. server FQDN or YOUR name) []:Erma
Email Address []:mr_wangyaojie@163.com

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:
An optional company name []:

这时候生成了一个csr文件

生成证书并且签名,有效期10年
$ openssl x509 -req -days 3650 -in rsacert.csr -signkey private.pem -out rsacert.crt

转换格式-将 PEM 格式文件转换成 DER 格式
$ openssl x509 -outform der -in rsacert.crt -out rsacert.der

导出P12文件
$ openssl pkcs12 -export -out p.p12 -inkey private.pem -in rsacert.crt

最后生成了两个我们要用的文件,一个p12文件和一个der文件,der文件是公钥,p12文件是私钥。
参考技术A 开始的时候是将普通版本跟支持Engine的版本分开的追问

你在说什么

以上是关于openssl pem证书 转换为p12类型证书的主要内容,如果未能解决你的问题,请参考以下文章

Python p12 到 pem

当我尝试将其转换为 cert.pem 和 key.pem 时,我有 p12 证书。 Key.pem 为空

使用openssl命令从.p12文件中提取证书和私钥。

iOS推送证书p12转成pem

使用 OpenSSL 实现私钥和证书的转换

[证书] OPENSSL将PFX证书转换为PEM格式