2016-07-26 17 views
5

Ich verwende Java, um ein CA-Modul zu codieren, um das Zertifikat zu erstellen und zu signieren. Wenn ich meinen Code ausführe, ist der Fehler "Typ der Subject-Klasse ungültig." erschien, aber im Zielordner kann ich die beiden Dateien erhalten: rooca.crt und rootca.pfx. Das Zertifikat enthält die von mir festgelegten Informationen. Vielleicht ist der Code Ergebnis ist richtig, aber ich möchte immer noch den Fehler beheben.Wie behebe ich den Fehler "Subject-Klasse Typ ungültig."

Die Einzelheiten der Ausnahme:

java.security.cert.CertificateException: Subject class type invalid. 
at sun.security.x509.X509CertInfo.setSubject(Unknown Source) 
at sun.security.x509.X509CertInfo.set(Unknown Source) 
at com.koal.Test.createIssueCert(Test.java:124) 
at com.koal.Test.main(Test.java:353) 

Teil meines Code: enter image description here Code eingeben hier

Antwort

7

ich ein ähnliches Problem konfrontiert. Dieser Code funktioniert gut mit Java 1.6 und schlägt mit dieser Ausnahme beim Ausführen unter Java 1.8 fehl.

Ich kann dieses Problem beheben, indem Sie the following solution implementieren.

Tatsächlich scheint es in Java 1.8, dass Sie den X500-Namen nicht mehr in CertificateSubjectName oder CertificateIssuerName einkapseln müssen. Sie können das X500Name-Objekt direkt in der X509CertInfo-Instanz speichern.