के साथ बाउंसीकास्टल के साथ X509 प्रमाणपत्र प्रस्तुत करना यह डिजिटल प्रमाणपत्र उत्पन्न करने के लिए अभी मेरे पास है। और अब मैं निजी कुंजी के लिए पासवर्ड के साथ एक डिजिटल प्रमाणपत्र उत्पन्न करने में सक्षम हूं।जावा
public static void main(String[] args) throws Exception {
Security.addProvider(new BouncyCastleProvider());
testKeyStore();
}
public static void testKeyStore() throws Exception {
try {
String storeName = "d://suresh_test.cer";
java.security.KeyPairGenerator keyPairGenerator = KeyPairGenerator
.getInstance("RSA");
keyPairGenerator.initialize(2048);
KeyPair keyPair = keyPairGenerator.generateKeyPair();
PublicKey publicKey = keyPair.getPublic();
PrivateKey privateKey = keyPair.getPrivate();
X509Certificate trustCert = createCertificate("CN=CA", "CN=CA",
publicKey, privateKey);
java.security.cert.Certificate[] outChain = {
createCertificate("CN=Client", "CN=CA", publicKey,
privateKey), trustCert };
KeyStore outStore = KeyStore.getInstance("PKCS12");
outStore.load(null, "suresh_".toCharArray());
outStore.setKeyEntry("mykey", privateKey, "suresh_".toCharArray(),
outChain);
OutputStream outputStream = new FileOutputStream(storeName);
outStore.store(outputStream, "suresh_".toCharArray());
outputStream.flush();
outputStream.close();
KeyStore inStore = KeyStore.getInstance("PKCS12");
inStore.load(new FileInputStream(storeName),
"suresh_".toCharArray());
} catch (Exception e) {
e.printStackTrace();
throw new AssertionError(e.getMessage());
}
}
private static X509Certificate createCertificate(String dn, String issuer,
PublicKey publicKey, PrivateKey privateKey) throws Exception {
X509V3CertificateGenerator certGenerator = new X509V3CertificateGenerator();
certGenerator.setSerialNumber(BigInteger.valueOf(Math.abs(new Random()
.nextLong())));
certGenerator.setIssuerDN(new X509Name(dn));
certGenerator.setSubjectDN(new X509Name(dn));
certGenerator.setIssuerDN(new X509Name(issuer)); // Set issuer!
certGenerator.setNotBefore(Calendar.getInstance().getTime());
certGenerator.setNotAfter(Calendar.getInstance().getTime());
certGenerator.setPublicKey(publicKey);
certGenerator.setSignatureAlgorithm("SHA1WithRSAEncryption");
X509Certificate certificate = (X509Certificate) certGenerator.generate(
privateKey, "BC");
return certificate;
}
इसे स्वयं साइन कैसे करें?
मेरे पास कोई सुराग नहीं है।
मैं इसके लिए कैसे आगे बढ़ सकता हूं?
किसी भी संकेत के लिए धन्यवाद।
आपका प्रश्न यह नहीं बताता कि आपने समस्या को हल करने और हल करने के लिए क्या किया है; यह वर्तमान में कोड के लिए अनुरोध की तरह पढ़ता है। कृपया अपने प्रयास किए गए कार्यान्वयन को साझा करें और समझाएं कि यह आपकी आवश्यकताओं को पूरा करने में विफल रहता है। –
@ डंकन जोन्स वेल, मैंने प्रमाण पत्र जेनरेट किया। लेकिन बाउंसी महल एपीआई का उपयोग करके इसे कैसे हस्ताक्षर नहीं करना है, उन्हें अपनी वेबसाइट में कोई चीज़ नहीं मिली है। सहायता के लिए धन्यवाद। –