PKCS12 키 저장소에 저장된 인증서를 나열하고 싶었습니다.
키 저장소에는 확장자가 있습니다. .pfx
PKCS12 키 저장소에 저장된 인증서를 나열하고 싶었습니다.
키 저장소에는 확장자가 있습니다. .pfx
답변:
키 저장소가 PKCS12 유형 ( .pfx
)이면 다음과 같이 지정해야합니다 -storetype PKCS12
(가독성을 위해 줄 바꿈 추가됨).
keytool -list -v -keystore <path to keystore.pfx> \
-storepass <password> \
-storetype PKCS12
.p12
) 와 함께 작동해야합니까 ? 내가 얻을java.io.IOException: Invalid keystore format
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
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
질문과 모든 답변에서 누락 된 것은 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 구조에 따라 암호없이 작동합니다.
내가 직접 답을 찾지 못했고 그것을 알아내는 데 많은 시간을 할애했기 때문에 그것을 추가하고 싶었습니다.
openssl pkcs12 -info -in keystore_file