2011-03-29 2 views
-1

우리는 사용자를 인증하기 위해 원격 서버와 통신 중입니다. 웹 서버는 Verisign에서 서명 한 SSL 인증서를 사용합니다. 데이터는 HTTPS를 통해 교환 우리는 JVM 기본 SSL 공장을 사용하는 우리의 ThreadSafeClientConnManager를 구성한 :문제점을 일으키는 SSL 인증서 업그레이드

SchemeRegistry schemeRegistry = new SchemeRegistry(); 
schemeRegistry.register(new Scheme("http", PlainSocketFactory 
       .getSocketFactory(), 80)); 
schemeRegistry.register(new Scheme("https", SSLSocketFactory 
       .getSocketFactory(), 443)); 
ClientConnectionManager manager = new ThreadSafeClientConnManager(
       sDefaultHttpParams, schemeRegistry); 

최근에는 웹 서버가 SSL 인증서를 갱신하고이 깰 우리의 응용 프로그램을 발생했습니다. 이 문제를 피하기 위해 우리는 무엇을 할 수 있습니까?

도와주세요.

+0

귀하를 돕기 위해 필요한 세부 정보를 게시하지 않았습니다. 정확히, '휴식'이란 무엇입니까? – bmargulies

+0

클라이언트가 서버와 세션을 설정하고 사용자를 로그인 할 수 없습니다. – Samuh

+0

예외를 얻으시겠습니까? 무슨 예외? – bmargulies

답변

2

실제로 문제가 아니기 때문에 실제로 문제를 피할 수있는 방법은 없으며 SSL 인증서 및 기관 신뢰의 핵심 기능입니다.

이것은 매우 광범위한 질문입니다. 자세한 내용은 정확한 문제를 찾아내는 데 도움이되지만 여기서는 처음 두 가지 사항을 확인해야합니다.

  1. 그들은 어떤 CA에서 SSL 인증서를 업그레이드 했습니까? 자체 서명 되었습니까?
    비표준 루트 인증 기관을 사용하는 SSL 인증서를 사용하도록 사이트를 업그레이드 한 경우 keytool을 사용하여 특정 SSL 인증서를 가져 와야 로컬 JVM에 인증서가 신뢰되었음을 알릴 수 있습니다. 그들이 새로운 기관을 사용하고 있고 조직이 루트 권한을 신뢰한다면 새로운 루트 인증 기관을 가져와야 할 수도 있습니다. 대부분의 전공은 기본적으로 지원되지만 때때로 새로운 항목을 가져와야합니다. http://download.oracle.com/javase/1.4.2/docs/tooldocs/windows/keytool.html

  2. 은 인증서가 올바르게 연결됩니다 있는지 확인합니다. 내가 본 두 번째로 가장 일반적인 문제는 사이트 관리자가 cert chaining (설치)하는 것입니다. 불행히도 IE/Mozilla/Java ... 모두 SSL 인증서가 "유효"한지 확인하기 위해 다른 유효성 검사 메커니즘을 사용하며 많은 사이트 관리자가 인증서를 해당 사이트의 적절한 루트 기관에 올바르게 연결하는 방법을 알지 못합니다. 브라우저에서 인증서를 열어야합니다 (여러 개를 열어서). 신뢰할 수있는 체인을 검사하여 사이트의 인증서 체인을 예상 루트 CA까지 백업합니다. (이것은 # 1의 루트 CA를 확인하는 방법이기도합니다.) 트러스트 체인이없는 경우 JVM SSL 유효성 검사가 실패합니다 (이전 버전의 Internet Explorer에서는 Internet Explorer가 체인화되지 않은 인증서를 "유효"로 간주합니다).
+2

또한 사용중인 트러스트 스토어를 확인하는 것이 중요합니다. 기본 트러스트 스토어가 재정의되었거나 편집 되었습니까? 외부 서버에서 사용하는 인증서는 인증서를 가져 오기 위해 웹에있는 InstallCert Java 프로그램을 사용할 수있는 자체 서명 (또는 만료)됩니다. – hooknc

+0

그 정보에 대해 @hooknc에게 감사합니다! – Samuh