1. weblogic 9.2 에서 graph.facebook.com 에 ssl로 접근하자 아래와 같은 에러 발생
javax.net.ssl.SSLKeyException: FATAL Alert:BAD_CERTIFICATE - A corrupt or unuseable certificate was received.
2. 삽질에 삽질(중요) 끝에 웹로직 옵션 중 아래와 같은 옵션 발견
�� To use a custom host name verifier, specify:
-Dweblogic.security.SSL.hostnameVerifier=classname
where classname specifies the implementation of the
weblogic.security.SSL.HostnameVerifier interface.
: HostnameVerifier를 만들어서 올리기로 결정!
�� To disable host name verification, specify:
-Dweblogic.security.SSL.ignoreHostnameVerification=true
: 이 아이를 사용할 경우, SSL에서 host명 검증을 아예 안한다는 옵션이므로, 보안상 취약하므로 패스..
3. 만들자 custom host name verifier
1) weblogic.jar를 구해서 로컬에 저장하고, 빌드패스에 포함시킴
2) 코딩 시작
(reference :http://jandrewthompson.blogspot.com/2010/04/weblogic-and-wildcard-ssl-certificates.html)
위 블로그에 있는건 전체 와일드카드(*)를 처리하는 내용이지만.. 범위를 페이스북으로 단일화하는게 목적이므로..
if (cn.equals(hostname) || (cn.equals("*.facebook.com") && hostname.equals("graph.facebook.com"))){
return true;
}
요렇게 처리하고 끝!
3) 컴파일 하고 JAR 만들기
4) 만든 JAR를 서버에 올리고, setDomainEnv.sh 에서 옵션 세팅
CLASSPATH = "${DOMAIN_HOME}/somewhere/customverifier.jar..."
JAVA_OPTIONS = "-Dweblogic.security.SSL.hostnameVerifier=com.CustomVerifier..."
5) 끝!
이라고 생각했다..
그러나 또 안된다 ㅡㅡ
혹시나 하는 마음에 최초에 삽질의 삽질 중 발견한 옵션
-Dweblogic.security.SSL.allowSmallRSAExponent=true <- 이분
이 분을 JAVA_OPTIONS에 추가하니 .... 된다! :)
(정체는 아직 불분명해서 살짝 불안하지만.. 좀더 구글링해보고 추가하겠음)
댓글 없음:
댓글 쓰기