2017-01-01 1 views
1

회사의 다른 모든 인증서에 서명하는 데 사용되는 "회사"자체 서명 인증서를 만들고 싶습니다. 내 목표는 그 용도로만 Java keytool을 사용하는 것입니다.keytool을 사용하여 서버 인증서를 만드는 데 필요한 최소 단계 수

내 첫 번째 단계는 "전체 조직"신뢰을에서 기업 자체 서명 된 인증서를 생성하는 키 저장소했다 : - 서버 - 그럼

keytool -genkeypair -keystore truststore.jks -storepass changeit -alias ca -keypass changeit -dname CN=ca,OU=dev,O=myorg

, 나는 다른 만든 인증서에 그것은 자신의 서버 키 저장소, CSR을 생성하고, 마지막으로 단지 ca 자체 서명 된 인증서 이상 발생와 함께 불똥이 튄 :

keytool -genkeypair -keystore server.jks -storepass changeit -alias server -keypass changeit -dname CN=server,OU=dev,O=myorg

keytool -certreq -keystore server.jks -storepass changeit -alias server -keypass changeit -file server.csr

나는 다시 가져 시도한 이제

keytool -gencert -keystore truststore.jks -storepass changeit -alias ca -keypass changeit -infile server.csr -outfile server.cer

- 서버 키 저장소에서 서버 인증서 - 현재 로그인 :

keytool -importcert -keystore server.jks -storepass changeit -alias server -keypass changeit -file server.cer

I을 다음 오류가 발생했습니다 :

키 도구 오류 : java.lang.Exception와는 :

:

극복하기 위해 응답에서 체인을 설정하지 못했습니다, 내가 신뢰에서 자체 서명 된 인증서를 내 보낸, 서버에 키 저장소에 그것을 가져

keytool -importcert -keystore server.jks -storepass changeit -alias ca -keypass changeit -file ca.cer -noprompt

마지막으로, 서버 인증서를 다시 가져 keytool -exportcert -keystore truststore.jks -storepass changeit -alias ca -keypass changeit -file ca.cer

성공적으로이 시간.

이 방법이 효과가있을 수 있지만 그 해결책이 마음에 들지 않습니다. 자체 서명 인증서를 가져 오기 전에 서명 한 서버 인증서를 가져 오기 전에.

keytool 인증서 요청을 생성하고 자체 서명 된 인증서로 서명하고 루트 인증서를 가져 오지 않고 키 저장소로 가져올 수있는 일련의 작업을 찾고 있는데 서버 인증서는 서버 저장소의 유일한 인증서 여야합니다.

이러한 목적으로 openssl을 사용하고 싶지 않고, cacerts을 포함시키지 않으려합니다. 가능한가?

답변

0

내가 본 것으로부터 서명 된 인증서를 가져 오기 위해 CA 인증서의 공용 키를 가져와야합니다. 만약 당신이 그것을 제거한 후 일어날 일이 확실하지 않습니다. 제 추측으로는 인증서를 망칠 것입니다. 서버 인증서에 cacert가있는 것이 무엇이 문제입니까?

This post에는 keytool을 사용하여 CA 인증서, 서버 인증서, 클라이언트 인증서 및 트러스트 스토어를 만드는 Windows PowerShell 스크립트가 포함되어 있습니다.도움이 될만한 확장 기능이 포함되어 있습니다.

희망이 도움이됩니다.

최고, 에이스

관련 문제