pem格式证书
① 如何把pem证书转化为p12证书
我使用JavaPNS 进行ios推送时,需要使用p12格式的证书,可是同事提供给我的证书格式是pem的。于是我面临一个问题:如何把pem转化为p12?
我操作系统是win7.
pem转化为p12的步骤如下:
首先要安装openssl:
下载后的文件是:Win32OpenSSL_Light-1_0_1e.exe
安装完成之后,关闭所有的命令行窗口(若有打开的),然后运行如下命令:
openssl pkcs12 -export -in apns_dev.pem -out paypal.pkcs12
apns_dev.pem 是输入,paypal.pkcs12是输出,paypal.pkcs12就是JavaPNS 需要的证书
附件是doc文件
② 如何从pem格式的私钥文件中读取私钥
以下命令来生成密钥对。
$openssl genrsa -out mykey.pem 2048
$openssl pkcs8 -topk8 -inform PEM -outform PEM -in mykey.pem \
-out private_key.pem -nocrypt
这个命令得到的公共密钥。
$ openssl rsa -in mykey.pem -pubout -outform DER -out public_key.der
我写了两方法读取私钥和公钥
分别。public PrivateKey getPemPrivateKey(String filename, String algorithm) throws Exception {
File f = new File(filename);
FileInputStream fis = new FileInputStream(f);
DataInputStream dis = new DataInputStream(fis);
byte[] keyBytes = new byte[(int) f.length()];
dis.readFully(keyBytes);
dis.close();
String temp = new String(keyBytes);
String privKeyPEM = temp.replace("-----BEGIN PRIVATE KEY-----\n", "");
privKeyPEM = privKeyPEM.replace("-----END PRIVATE KEY-----", "");
//System.out.println("Private key\n"+privKeyPEM);
Base64 b64 = new Base64();
byte [] decoded = b64.decode(privKeyPEM);
PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(decoded);
KeyFactory kf = KeyFactory.getInstance(algorithm);
return kf.generatePrivate(spec);
}
public PublicKey getPemPublicKey(String filename, String algorithm) throws Exception {
File f = new File(filename);
FileInputStream fis = new FileInputStream(f);
DataInputStream dis = new DataInputStream(fis);
byte[] keyBytes = new byte[(int) f.length()];
dis.readFully(keyBytes);
dis.close();
String temp = new String(keyBytes);
String publicKeyPEM = temp.replace("-----BEGIN PUBLIC KEY-----\n", "");
publicKeyPEM = privKeyPEM.replace("-----END PUBLIC KEY-----", "");
Base64 b64 = new Base64();
byte [] decoded = b64.decode(publicKeyPEM);
X509EncodedKeySpec spec =
new X509EncodedKeySpec(decoded);
KeyFactory kf = KeyFactory.getInstance(algorithm);
return kf.generatePublic(spec);
}
③ pem 格式证书 怎么使用openssl
命令密钥
$openssl genrsa -out mykey.pem 2048
$openssl pkcs8 -topk8 -inform PEM -outform PEM -in mykey.pem \
-out private_key.pem -nocrypt
命令公共密钥
$ openssl rsa -in mykey.pem -pubout -outform DER -out public_key.der
我写两读取私钥公钥
别public PrivateKey getPemPrivateKey(String filename, String algorithm) throws Exception {
File f = new File(filename);
FileInputStream fis = new FileInputStream(f);
DataInputStream dis = new DataInputStream(fis);
byte[] keyBytes = new byte[(int) f.length()];
dis.readFully(keyBytes);
dis.close();
String temp = new String(keyBytes);
String privKeyPEM = temp.replace("-----BEGIN PRIVATE KEY-----\n", "");
privKeyPEM = privKeyPEM.replace("-----END PRIVATE KEY-----", "");
//System.out.println("Private key\n"+privKeyPEM);
Base64 b64 = new Base64();
byte [] decoded = b64.decode(privKeyPEM);
PKCS8EncodedKeySpec spec = new PKCS8EncodedKeySpec(decoded);
KeyFactory kf = KeyFactory.getInstance(algorithm);
return kf.generatePrivate(spec);
}
public PublicKey getPemPublicKey(String filename, String algorithm) throws Exception {
File f = new File(filename);
FileInputStream fis = new FileInputStream(f);
DataInputStream dis = new DataInputStream(fis);
byte[] keyBytes = new byte[(int) f.length()];
dis.readFully(keyBytes);
dis.close();
String temp = new String(keyBytes);
String publicKeyPEM = temp.replace("-----BEGIN PUBLIC KEY-----\n", "");
publicKeyPEM = privKeyPEM.replace("-----END PUBLIC KEY-----", "");
Base64 b64 = new Base64();
byte [] decoded = b64.decode(publicKeyPEM);
X509EncodedKeySpec spec =
new X509EncodedKeySpec(decoded);
KeyFactory kf = KeyFactory.getInstance(algorithm);
return kf.generatePublic(spec);
}
④ 如何从pem格式私钥文件中获取公钥
Linux 工具通使用 base64 编码文本格式相关用缀:
* 证书:.crt, .pem
* 私钥:.key
* 证书请求:.csr
.cer 像二进制证书证书 key 放同专文件边候扩展名属通叫 .pemJava keystore 都二进制像自格式
其实类 UNIX 系统关注文件名缀程序并证书、密钥都明显标识所相关软件( openssl)处理管用扩展名乱用扩展名自识别便桌面环境能扩展名与默认操作、图标关联起
知道文件啥使用 file 命令识别试试经验直接拿文本编辑器打看看
-
⑤ 制作ssl证书,生成了pem文件以后该怎么弄
申请SSL证书主要需要经过以下3个步骤:
1.制作CSR文件。
2.CA认证。 3.证书的安装。 如果不知道怎么制作,可以咨询ssl盾客服,
⑥ 老师你好,在ssl证书中,cer是公钥证书,key是私钥证书,crt是证书链对吗
一、SSL证书文件
如图所示,就是一些SSL证书文件。上图带有root CA 字样的证书文件就是根证书, 然后带intermediate ca 字样的就是中间证书文件, 最后一个 ssl servercertificate 字样的证书即为证书文件。
了解认识SSL证书文件,才能更好的去安装SSL证书。虽然大部分时候直接安装证书文件,浏览器也会显示安全,但是由于一些浏览器会自动补齐证书链,但是证书链缺失的话,一些手机端或者部分浏览器可能会报不安全的提醒,所以在安装的时候建议安装完整的证书文件,补齐证书链。
二、SSL证书格式
在SSL证书源文件中你会发现有很多格式。不同的web服务器对于证书的格式是有要求的,接下来也带大家了解下不同格式的证书文件。
PEM:- Privacy Enhanced Mail,打开看文本格式,以”—–BEGIN…”开头, “—–END…”结尾,内容是BASE64编码.上述一般证书文件 ,中间证书和根证书,证书文件很多都是pem格式的。Apache和NIgnix服务器偏向于使用这种编码格式.
DER:这种格式也是常见的证书格式,跟pem类似,中间证书和根证书,证书文件很多都是DER的,Java和Windows服务器偏向于使用这种编码格式。
JKS :jks是Java密钥库(KeyStore)比较常见的一种格式。一般可用通过cer 或者pem 格式的证书以及私钥的进行转化为jks格式,有密码保护。所以它是带有私钥的证书文件,一般用户tomcat环境的安装
PFX:pfx格式的证书 也是由cer 或者pem格式的证书文件以及私钥转化而来,所以该证书文件也是带有私钥的证书文件,一般用于iis 环境的证书安装。
⑦ tomcat https支持是不是不支持pem格式证书
另外,Tomcat应该是支持pem证书的,因为Tomcat9默认的配置文件server.xml中包含以下的支持HTTP/2的Connector
<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
maxThreads="150" SSLEnabled="true" >
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
<SSLHostConfig>
<Certificate certificateKeyFile="conf/localhost-rsa-key.pem"
certificateFile="conf/localhost-rsa-cert.pem"
certificateChainFile="conf/localhost-rsa-chain.pem"
type="RSA" />
</SSLHostConfig>
</Connector>
看下参考这内个配置能不能帮到容你,具体的我没有做测试。
⑧ 如何将.cer证书转换成pem格式,windows server里
cer格式证书转pem格式:
openssl x509 -inform der -in apple_pay.cer -out apple_pay_certificate.pem
⑨ 如何区分ssl证书格式 pem pkcs12
无论是什么格式,他的目的就是使用服务器环境而已。
⑩ 请教如何将cer格式证书转换成pem文件
crt和cer是一样的格式合成cert,都是证书公钥文件 ;key是私钥,key转成cer只需要用记事本打开,复制到cer格式的里面去就行,但是会失去key的作用——沃通(wosign)专业的数字证书CA机构