gpt4 book ai didi

java - 数字签名证书设置颁发者名称

转载 作者:太空宇宙 更新时间:2023-11-04 12:53:07 25 4
gpt4 key购买 nike

通过使用 java x509certificate 我正在生成 p12 证书。对证书进行数字签名后,其显示的主题和颁发者相同。任何人都可以帮我将主题设置为我的名字,将发行人设置为公司名称。

P12 文件本身具有相同的发行者和主题。

Image 1

Image 2

下面是我生成证书的代码

package com.dynamic;
import java.io.FileOutputStream;
import java.io.IOException;
import java.security.InvalidKeyException;
import java.security.Key;
import java.security.KeyStore;
import java.security.NoSuchAlgorithmException;
import java.security.NoSuchProviderException;
import java.security.Principal;
import java.security.SignatureException;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.logging.Level;
import java.util.logging.Logger;
import sun.security.x509.CertAndKeyGen;
import sun.security.x509.X500Name;
public class Dynamic {
public static void main(String[] args) {
try{
Dynamic di=new Dynamic();
di.createPFXFile();
} catch (Exception ex){
ex.printStackTrace();
}
}
public boolean createPFXFile() throws IOException, NoSuchAlgorithmException, CertificateException, InvalidKeyException, SignatureException, NoSuchProviderException
{
boolean flag=false;
try {
X509Certificate cert=null;
KeyStore keyStore = KeyStore.getInstance("PKCS12");
keyStore.load(null, null);
CertAndKeyGen gen = new CertAndKeyGen("RSA","SHA1WithRSA");
gen.generate(2048);
Key key=gen.getPrivateKey();
System.out.println("private key" + key);
cert=gen.getSelfCertificate(new X500Name("name","ccc","ddd","eee"), (long)365*24*3600);
X509Certificate[] chain = new X509Certificate[1];
chain[0]=cert;
System.out.println("chain[0] :"+chain[0]);
keyStore.setKeyEntry("private", key, "password".toCharArray(), chain);
keyStore.store(new FileOutputStream("D:/"+uid+".p12"), "password".toCharArray());
return flag=true;
} catch (Exception ex) {
Logger.getLogger(Dynamic.class.getName()).log(Level.SEVERE, null, ex);
}
return flag;
}
}

最佳答案

这是一个自签名证书,因此会出现问题。要修复此问题,请首先创建 CA 证书(可以自签名),然后使用 CA 签署您的证书。

关于java - 数字签名证书设置颁发者名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35632992/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com