keytool을 사용하여 PKCS12 키 저장소에 저장된 인증서를 나열하는 방법은 무엇입니까?


답변:


146

키 저장소가 PKCS12 유형 ( .pfx)이면 다음과 같이 지정해야합니다 -storetype PKCS12(가독성을 위해 줄 바꿈 추가됨).

keytool -list -v -keystore <path to keystore.pfx> \
    -storepass <password> \
    -storetype PKCS12

6
그래픽 인터페이스 유틸리티를 선호한다면 Java 명령 줄 유틸리티 keytool, jarsigner 및 jadtool을 대체하는 오픈 소스 GUI 인 Keystore Explorer를 찾았습니다. keystore-explorer.sourceforge.net
데이비드 가르시아 곤잘레스

@David 팁에 감사드립니다. 다른 많은 프로젝트와 달리 프로젝트가 여전히 활성화되어 있다는 것을 보니 반갑습니다!
John Rix 2015

그 프리웨어 도구에 우수한 팁 - 나는 일반적으로 명령 줄을 선호하지만, 이것은 아주 좋은
대황

1
( .p12) 와 함께 작동해야합니까 ? 내가 얻을java.io.IOException: Invalid keystore format
IgniteCoders

P12 인증서 저장소 (2019 년
Harald Coppoolse

29

openssl동일한 작업을 수행하는 데 사용할 수도 있습니다 .

$ openssl pkcs12 -nokeys -info \
    -in </path/to/file.pfx> \
    -passin pass:<pfx's password>

MAC Iteration 2048
MAC verified OK
PKCS7 Encrypted data: pbeWithSHA1And40BitRC2-CBC, Iteration 2048
Certificate bag
Bag Attributes
    localKeyID: XX XX XX XX XX XX XX XX XX XX XX XX XX 48 54 A0 47 88 1D 90
    friendlyName: jedis-server
subject=/C=US/ST=NC/L=Raleigh/O=XXX Security/OU=XXX/CN=something1
issuer=/C=US/ST=NC/L=Raleigh/O=XXX Security/OU=XXXX/CN=something1
-----BEGIN CERTIFICATE-----
...
...
...
-----END CERTIFICATE-----
PKCS7 Data
Shrouded Keybag: pbeWithSHA1And3-KeyTripleDES-CBC, Iteration 2048

3
.p12 파일에서도 작동한다고 말하면됩니다. 매우 도움이되었습니다, 감사합니다!
Rich Ross

@PhilipRego는 할 수 있습니다. 작은 따옴표로 묶으십시오.
slm

나는 별명을보고 싶었다. "openssl pkcs12 -nodes -in </path/to/file.pfx> -passin pass : <pfx 's password>"를 사용해야했습니다
Domo

3

keytool을 사용하여 항목 (인증서 세부 정보)을 나열 할 수 있으며 상점 유형을 언급 할 필요도 없습니다.

keytool -list -v -keystore cert.p12 -storepass <password>

 Keystore type: PKCS12
 Keystore provider: SunJSSE

 Your keystore contains 1 entry
 Alias name: 1
 Creation date: Jul 11, 2020
 Entry type: PrivateKeyEntry
 Certificate chain length: 2

Pls는 다른 사람들이 이로부터 혜택을받을 수 있도록 코드와 그것이 어떻게 도움이 될지 설명하는 것을 고려합니다.
Amit Verma

답변을 업데이트했습니다.
harry

2

질문과 모든 답변에서 누락 된 것은 PKCS # 12 (.pfx) 키 저장소에서 공용 데이터를 읽으려면 암호가 필요할 수 있다는 것입니다. 암호가 필요한지 여부는 PKCS # 12 파일이 생성 된 방법에 따라 다릅니다. PKCS # 7 데이터 (예 : OID 접두사 1.2.840.113549.1.7)가 '암호화 됨'으로 나열되어있는 경우 파일의 ASN1 구조를 확인할 수 있습니다 (ASN1 파서를 통해 실행하여 openssl 또는 certutil도이 작업을 수행 할 수 있음). 암호 사양을 사용하거나 asn1 트리의 데이터 위치가 암호화 된 노드 아래에있는 경우 암호를 모르면 읽을 수 없습니다. 이는 'openssl pkcs12'명령이 오류와 함께 실패 함을 의미합니다 (출력은 버전에 따라 다름). 암호에 대한 지식없이 PKCS # 12 인증서에 관심이있는 이유를 궁금해하는 사람들을 위해. 많은 키 저장소와 많은 구문을 가지고 있고 그것들을 체계적으로 유지하는 데 정말 나쁘고 모든 조합을 테스트하고 싶지 않다고 가정 해보십시오. 파일 내부의 인증서가 어떤 암호인지 알아내는 데 도움이 될 수 있습니다. 또는 키 저장소를 마이그레이션 / 갱신하기위한 소프트웨어를 개발 중이며 사용자 상호 작용없이 포함 된 인증서를 기반으로 시작할 절차를 미리 결정해야합니다. 따라서 후자의 예는 PKCS # 12 구조에 따라 암호없이 작동합니다. 또는 키 저장소를 마이그레이션 / 갱신하기위한 소프트웨어를 개발 중이며 사용자 상호 작용없이 포함 된 인증서를 기반으로 시작할 절차를 미리 결정해야합니다. 따라서 후자의 예는 PKCS # 12 구조에 따라 암호없이 작동합니다. 또는 키 저장소를 마이그레이션 / 갱신하기위한 소프트웨어를 개발 중이며 사용자 상호 작용없이 포함 된 인증서를 기반으로 시작할 절차를 미리 결정해야합니다. 따라서 후자의 예는 PKCS # 12 구조에 따라 암호없이 작동합니다.

내가 직접 답을 찾지 못했고 그것을 알아내는 데 많은 시간을 할애했기 때문에 그것을 추가하고 싶었습니다.


당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.