Server/Tomcat&Nginx 외
[Resin] SSL설정 https 호출오류 - java.lang.UnsatisfiedLinkError : com.caucho.vfs.JniSocketImpl.getSslProtocol(J)Ljava/lang/String
나비와꽃기린
2019. 12. 31. 10:39
가상화 테스트서버 구축 시, resin을 설치했다.
테스트서버라 SSL설정을 안 해놨었는데 제품팀에서 제품인증시 SSL로 테스트를 해봐야 한다고 해서
SSL설정 요청을 해왔다.
급하게 SSL설정을 총총..
resin.xml에 http포트 설정 아래에 443 port를 추가하고, ssl 인증서 경로를 작성해준다.
그리고 해당 경로에 인증서파일 넣기
<!-- The http port -->
<http address="*" port="80">
<keepalive-timeout>15s</keepalive-timeout>
<keepalive-select-enable>false</keepalive-select-enable>
</http>
<!--443 PORT 추가-->
<http port="443">
<openssl>
<cipher-suite>ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL</cipher-suite>
<certificate-file>파일위치</certificate-file>
<certificate-key-file>파일위치</certificate-key-file>
<ca-certificate-file>파일위치</ca-certificate-file>
<protocol>-ALL -sslv3 +tlsv1</protocol>
<password></password>
</openssl>
</http>
그리고 Resin 기동 후, https로 호출을 해봤더니 다음과 같은 오류가 났다.
java.lang.UnsatisfiedLinkError : com.caucho.vfs.JniSocketImpl.getSslProtocol(J)Ljava/lang/String
해당 오류를 찾아보니 class파일이 없거나, 참조할 라이브러리가 없다거나 하는 오류란다.
JniSoketImpl이 c모듈을 부르는 함수라고 하는 것 같은데..(?)
자바에서 c모듈 호출 시 필요한 lib가 없는 듯 하여..(?)
기존 ${RESIN_HOME}\lib 를 ${RESIN_HOME}\lib_bak 으로 백업을 만 든뒤
운영환경에서의 lib 디렉토리를 가져왔다.
그리고 https 호출하니 잘 됨!
아무래도 새로 추가된 jar나 특정 Binary files가 필요했던게 아닐까 -
어쨌든 해당 오류는 참조오류라는걸 기억하자. 뭔가 누락된거다!