Java 웹 서비스 클라이언트를 개발하는 동안 문제가 발생했습니다. 웹 서비스 인증은 클라이언트 인증서, 사용자 이름 및 비밀번호를 사용합니다. 웹 서비스 뒤에있는 회사에서받은 클라이언트 인증서의 .cer
형식 이 다릅니다 . 텍스트 편집기를 사용하여 파일을 검사하면 다음 내용이 있습니다.
-----BEGIN CERTIFICATE-----
[Some base64 encoded data]
-----END CERTIFICATE-----
Internet Explorer에서이 파일을 인증서로 가져 와서 (암호를 입력하지 않아도 됨) 웹 서비스에서 인증하는 데 사용할 수 있습니다.
먼저 첫 번째 줄과 마지막 줄을 제거하고 유닉스 개행으로 변환하고 base64 디코딩을 실행하여이 인증서를 키 저장소로 가져올 수있었습니다. 결과 파일을 keytool
명령을 사용하여 키 저장소로 가져올 수 있습니다 . 키 저장소에 항목을 나열하면이 항목은 유형 trustedCertEntry
입니다. 이 항목 유형 (?)으로 인해이 인증서를 사용하여 웹 서비스를 인증 할 수 없습니다. 제공된 인증서가 인증에 사용되는 공용 인증서라고 생각하기 시작했습니다 ...
내가 찾은 해결 방법은 IE에서 인증서를 가져 와서 .pfx
파일 로 내보내는 것 입니다. 이 파일은 키 저장소로로드 될 수 있으며 웹 서비스를 인증하는 데 사용될 수 있습니다. 그러나 고객이 새 인증서를받을 때마다 이러한 단계를 수행 할 것으로 기대할 수 없습니다. 그래서 .cer
파일을 Java로 직접 로드하고 싶습니다 . 이견있는 사람?
추가 정보 : 웹 서비스 뒤에있는 회사는 나중에 인증서를 가져올 PC 및 사용자에게 인증서를 요청해야한다고 IE와 웹 사이트를 사용하여 알려줍니다.