2016-07-26 25 views
5

Używam java do kodowania modułu CA, aby utworzyć i podpisać certyfikat. Kiedy uruchamiam mój kod, błąd "Niepoprawny typ klasy przedmiotu." Pojawiło się, ale w folderze docelowym mogę uzyskać dwa pliki: rooca.crt i rootca.pfx. Certyfikat zawiera informacje, które ustawiłem. Może kod jest wynikiem, ale nadal chcę naprawić błąd.Jak naprawić błąd "Niepoprawny typ klasy przedmiotu."

Szczegóły wyjątku:

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) 

część mojego kodu: enter image description here wpisać kod tutaj

Odpowiedz

7

wychodził podobny problem. Ten kod działa dobrze w Javie 1.6 i kończy się niepowodzeniem z tym wyjątkiem podczas działania w języku Java 1.8.

Mogę rozwiązać ten problem, wdrażając the following solution.

W rzeczywistości w języku Java 1.8 wydaje się, że nie trzeba już hermetyzować nazwy X500Name w CertificateSubjectName lub CertificateIssuerName. Możesz przechowywać obiekt X500Name bezpośrednio w instancji X509CertInfo.