2013-09-02 2 views
0

Google Marketplace 앱용 인증서를 만들려고합니다. 나는 인터페이스를 구현하기 위해 노력하고 http://code.google.com/p/step2/source/browse/code/java/trunk/common/src/main/java/com/google/step2/xmlsimplesign/TrustRootsProvider.java?r=383X.509 인증서 목록을 생성하고 .bin 파일에 저장

내 소스 코드는 우리가 .cert 파일 또는 .der과 파일하지만 어떻게 목록을 가져올 인증서를 생성 할 수있는 OpenSSL 또는 키 도구를 사용하는 난이 기사를 읽고

public class AppEngineTrustsRootProvider implements TrustRootsProvider { 

    private static final String CERT_FILE = "/cacerts.bin"; 

    private final Collection<X509Certificate> certs; 

    @SuppressWarnings("unchecked") 
    public AppEngineTrustsRootProvider() { 

    try { 
     ObjectInputStream in = 
      new ObjectInputStream(AppEngineTrustsRootProvider.class.getResourceAsStream(CERT_FILE)); 
     certs = (Collection<X509Certificate>) in.readObject(); 
    } catch (IOException e) { 
     throw new RuntimeException(e); 
    } catch (ClassNotFoundException e) { 
     throw new RuntimeException(e); 
    } 
    } 

    public Collection<X509Certificate> getTrustRoots() { 
    return certs; 
    } 
} 

입니다 .bin 파일의 인증서 중. 이것은 예제 코드 스 니펫입니다. 인증서 목록을 .bin 파일로 가져 오는 방법을 파악할 수 없습니다. 도움 좀주세요

답변

0

질문을 올바르게 이해하면 여러 개의 인증서를 하나의 파일로 가져 오는 중입니다. 이것은, 몇개의 형식이 될 수있는 KeyStore 파일을 통해서 자주 행해집니다. 두 가지 인기있는 형식은 JKS 및 PKCS12입니다. Java keytool 명령 또는 openssl 명령을 사용하여 키 스토어를 작성할 수 있습니다.

프로그래밍 방식으로 키 스토어 파일을 Java KeyStore 오브젝트로로드 할 수 있습니다. 거기에서 aliases() 메소드를 사용하여 KeyStore의 모든 별명을 검색 할 수 있습니다. 그런 다음 isCertificateEntry(alias) 메서드를 사용하여 각각을 처리 할 수 ​​있으며, true이면 getCertificate(alias)의 결과 인증서를 컬렉션에 추가하여 메서드가 끝날 때 반환합니다. 위의 KeyStore 링크에있는 파일에서 KeyStore를로드하기위한 몇 가지 예제 코드가 있습니다.

JRE 설치에있는 cacerts 파일은 실제로 JKS 키 저장소입니다.

관련 문제