체인으로 가져 오지 않았다면 기본적으로 인증서 체인을 구성해야합니다. 인증서 체인은 기본적으로 끝점 엔티티 인증서 (또한 리프 인증서, 체인의 가장 중요한 인증서)로 구성되며 그 뒤에는 덜 중요한 인증서가옵니다. CA 인증서가 가장 중요하지 않습니다.
인증서를 구축하는
3. CA Certificate (self-signed)
|
|__ 2. Sub CA Certificate (signed by the above CA)
|
|__ 1. Sub-sub CA Certificate (if any) (signed by the above Sub CA)
|
|__ 0. End Entity Certificate (your certificate, signed by the above cert)
각 인증서에서 자신을 체인, 당신은, 당신이 누구에 의해 서명 된 인증서를 볼 수 있습니다
그래서 이것은 보통의 X.509 인증서 체인의 모습을 어떻게 위의 방식으로 체인을 구성하십시오 (트리의 숫자는 java의 인증서 배열에있는 인덱스를 나타냄).
당신은 subjectDN을 및 의 issuerDN보고 누구에 의해 서명 된 인증서를 찾을 수 있습니다. 주체 고유 이름은 최종 엔터티이며 발급자 고유 이름은 인증서에 서명 한 엔터티의 이름입니다.
인증서가 프로그래밍 다른 인증서로 서명되었는지 확인해야하는 경우,이 작업을 수행 할 수 있습니다 :
userCert.verify (caCert.getPublicKey());
CertificateFactory certificateFactory = CertificateFactory.getInstance("X.509");
// Provided the certificate doesn't have certificate headers (---begin cert--- and ---end cert---)
Certificate cert = certificateFactory.generateCertificate(new FileInputStream(new File("CERTIFICATE_PATH")));
System.out.println(cert.getPublicKey());
:
이 코드를 사용하여 인증서에서 공개 키를 추출 할 수 있습니다