답변:
JDK 1.6 이상 사용
아래 주석에서 Justin은 keytool만으로 다음 명령을 사용하여이 작업을 수행 할 수 있다고 지적했습니다 (JDK 1.6 이상에서만 가능).
keytool -importkeystore -srckeystore mypfxfile.pfx -srcstoretype pkcs12
-destkeystore clientcert.jks -deststoretype JKS
JDK 1.5 이하 사용
OpenSSL은 모든 것을 할 수 있습니다. JGuru에 대한이 답변 은 지금까지 찾은 최고의 방법입니다.
먼저 OpenSSL이 설치되어 있는지 확인하십시오 . Mac OS X에서 찾은 것처럼 많은 운영 체제에 이미 설치되어 있습니다.
다음 두 명령은 pfx 파일을 Java PKCS12 키 저장소로 열 수있는 형식으로 변환합니다.
openssl pkcs12 -in mypfxfile.pfx -out mypemfile.pem
openssl pkcs12 -export -in mypemfile.pem -out mykeystore.p12 -name "MyCert"
두 번째 명령에 제공된 이름은 새 키 저장소에있는 키의 별칭입니다.
다음 명령과 함께 Java keytool 유틸리티를 사용하여 키 저장소의 내용을 확인할 수 있습니다.
keytool -v -list -keystore mykeystore.p12 -storetype pkcs12
마지막으로 필요한 경우 위에서 만든 키 저장소를 새 키 저장소로 가져 와서이를 JKS 키 저장소로 변환 할 수 있습니다.
keytool -importkeystore -srckeystore mykeystore.p12 -destkeystore clientcert.jks -srcstoretype pkcs12 -deststoretype JKS
jarsigner는 pfx 파일을 jar 서명을위한 키 저장소로 사용할 수 있습니다. 내보낼 때 pfx 파일에 개인 키와 인증서 체인이 있는지 확인하십시오. 다른 형식으로 변환 할 필요가 없습니다. 트릭은 pfx 파일 의 별칭 을 얻는 것 입니다.
keytool -list -storetype pkcs12 -keystore your_pfx_file -v | grep Alias
별칭이 있으면 서명이 쉽습니다.
jarsigner.exe -storetype pkcs12 -keystore pfx_file jar_file "your alias"
위의 두 명령은 pfx 내보내기에서 지정한 암호를 입력하라는 메시지를 표시합니다. 암호를 일반 텍스트로 표시하려면 -keystore 스위치 앞에 -storepass 스위치를 사용하십시오.
서명이 완료되면 작업에 감탄하십시오.
jarsigner.exe -verify -verbose -certs yourjarfile
PFX를 JKS (Java Key Store)로 가져 오는 방법을 알려주는 이 페이지를 찾았습니다 .
keytool -importkeystore -srckeystore PFX_P12_FILE_NAME -srcstoretype pkcs12 -srcstorepass PFX_P12_FILE -srcalias SOURCE_ALIAS -destkeystore KEYSTORE_FILE -deststoretype jks -deststorepass PASSWORD -destalias ALIAS_NAME
-srcstorepass
내 문제입니다. 이 PFX는 Windows 용 LetsEncrypt 클라이언트에서 생성
PFX 파일에는 개인 키가 포함되어 있어야합니다. 개인 키와 인증서를 PFX 파일에서 직접 내보내고 (예 : OpenSSL 사용) Java 키 저장소로 가져옵니다.
편집하다
추가 정보 :
Justin (위)은 정확합니다. 그러나 인증서를받는 사람 (중간 CA, 루트 CA 포함 여부) 또는 pfx 생성 / 내보내기 방법에 따라 때때로 인증서 체인이 누락 될 수 있습니다. 가져 오기 후에는 PrivateKeyEntry 유형의 인증서가 있지만 길이는 1입니다.
이를 해결하기 위해 몇 가지 옵션이 있습니다. 내 생각에 더 쉬운 옵션은 IE에서 pfx 파일을 가져오고 내보내는 것입니다 (체인에 모든 인증서 포함 옵션 선택). IE의 인증서 가져 오기 및 내보내기 프로세스는 매우 쉽고 다른 곳에서 잘 문서화되어야합니다.
내 보낸 후에는 Justin이 위에서 지적한대로 키 저장소를 가져옵니다. 이제 PrivateKeyEntry 유형의 인증서와 1보다 긴 인증서 체인 길이를 가진 키 저장소가 있습니다.
위의 작업을 수행하지 않으면 특정 .Net 기반 웹 서비스 클라이언트 오류가 발생합니다 (신뢰 관계를 설정할 수 없음).
JDK 1.5 이하로 작업하는 경우 keytool 유틸리티에는 -importkeystore
옵션 이 없으며 ( JDK 1.5 keytool 문서 참조 ) MikeD의 솔루션 .pfx
은 최신 JDK (1.6 이상)가있는 시스템에서 를 전송해야만 사용할 수 있습니다 .
JDK 1.5 이하의 또 다른 옵션 (Oracle WebLogic 제품이있는 경우)은 Oracle 문서 인 Using PFX and PEM Certificate Formats with Keystores 의 지침을 따르는 것 입니다. .pem
형식으로 의 변환 ,이 텍스트 형식에서 인증서 정보를 추출하는 방법, 유틸리티 .jks
를 java utils.ImportPrivateKey
사용 하여 형식으로 가져 오는 방법에 대해 설명 합니다 (WebLogic 제품에 포함 된 유틸리티).