当前位置:首页>开发>正文

java怎么读取IE里证书信息 java jks证书怎么转换成php pem证书

2024-01-10 05:38:36 互联网 未知 开发

 java怎么读取IE里证书信息 java jks证书怎么转换成php pem证书

java怎么读取IE里证书信息

X509Certificate[] certs = (X509Certificate[]) req.getAttribute("javax.servlet.request.X509Certificate")
byte] certTrans = new byte[]{}
if (certs!= null && certs.length != 0) {
try {
certTrans = certs[0].getEncoded()
//输出certTrans
}

java jks证书怎么转换成php pem证书

1、P12格式的证书是不能使用keytool工具导入到keystore中的
2、The Suns PKCS12 Keystore对从IE和其他的windows程序生成的pfx格式的证书支持不太好.
3、P7B证书链不能直接导入到keystore,需要将里面的证书导出成cer格式,再分别导入到keystore。

如何在Java处理PFX格式证书

开发人员通常需要将PFX文件转换为某些不同的格式,如PEM或JKS,以便可以为使用SSL通信的独立Java客户端或WebLogic Server使用
  在Security编程中,有几种典型的密码交换信息文件格式:
  DER-encoded certificate: .cer, .crt
  PEM-encoded message: .pem
  PKCS#12 Personal Information Exchange: .pfx, .p1  PKCS#10 Certification Request: .p  PKCS#7 cert request response: .p7r
  PKCS#7 binary message: .p7b

Java如何读取PFX密钥文件?

package com.Jinhill
import java.io.*
import java.util.*
import java.security.*
import java.security.cert.Certificate

public class ReadPFX {
public ReadPFX (){
}
//转换成十六进制字符串
public static String Byte2String(byte[] b) {
String hs=""
String stmp=""

for (int n=0n stmp=(java.lang.Integer.toHexString(b[n] & 0XFF))
if (stmp.length()==1) hs=hs "0" stmp
else hs=hs stmp
//if (n }
return hs.toUpperCase()
}

public static byte[] StringToByte(int number) {
int temp = number
byte[] b=new byte[4]
for (int i=b.length-1i>-1i--){
b[i] = new Integer(temp&0xff).byteValue()//将最高位保存在最低位
temp = temp >> 8 //向右移8位
}
return b
}
private PrivateKey GetPvkformPfx(String strPfx, String strPassword){
try {
KeyStore ks = KeyStore.getInstance("PKCS12")
FileInputStream fis = new FileInputStream(strPfx)
// If the keystore password is empty(""), then we have to set
// to null, otherwise it wont work!!!
char[] nPassword = null
if ((strPassword == null) || strPassword.trim().equals("")){
nPassword = null
}
else
{
nPassword = strPassword.toCharArray()
}
ks.load(fis, nPassword)
fis.close()
System.out.println("keystore type=" ks.getType())
// Now we loop all the aliases, we need the alias to get keys.
// It seems that this value is the "Friendly name" field in the
// detals tab <-- Certificate window <-- view <-- Certificate
// Button <-- Content tab <-- Internet Options <-- Tools menu
// In MS IE 6.
Enumeration enumas = ks.aliases()
String keyAlias = null
if (enumas.hasMoreElements())// we are readin just one certificate.
{
keyAlias = (String)enumas.nextElement()
System.out.println("alias=[" keyAlias "]")
}
// Now once we know the alias, we could get the keys.
System.out.println("is key entry=" ks.isKeyEntry(keyAlias))
PrivateKey prikey = (PrivateKey) ks.getKey(keyAlias, nPassword)
Certificate cert = ks.getCertificate(keyAlias)
PublicKey pubkey = cert.getPublicKey()
System.out.println("cert class = " cert.getClass().getName())
System.out.println("cert = " cert)
System.out.println("public key = " pubkey)
System.out.println("private key = " prikey)
return prikey
}
catch (Exception e)
{
e.printStackTrace()
}
return null
}
}