JAVA로 된 응용프로그램을 사용하다보면 간혹 다음과 같은 에러가 발생할 수 있습니다.
JAVA 사용자로써 저도 처음 겪었을 때 당황스러웠던 기억이 나네요..
에러내용 : 인증서 검증을 실패했습니다. 애플리케이션이 실행되지 않습니다
java.security.cert.CertificateException: java.security.cert.CertPathValidatorException: Response is unreliable: its validity interval is out-of-date at com.sun.deploy.security.RevocationChecker.checkOCSP(Unknown Source) at com.sun.deploy.security.RevocationChecker.check(Unknown Source) at com.sun.deploy.security.TrustDecider.checkRevocationStatus(Unknown Source) at com.sun.deploy.security.TrustDecider.getValidationState(Unknown Source) at com.sun.deploy.security.TrustDecider.validateChain(Unknown Source) at com.sun.deploy.security.TrustDecider.isAllPermissionGrantedInt(Unknown Source) at com.sun.deploy.security.TrustDecider.isAllPermissionGranted(Unknown Source) at com.sun.javaws.security.AppPolicy.grantUnrestrictedAccess(Unknown Source) at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResourcesHelper(Unknown Source) at com.sun.javaws.security.JNLPSignedResourcesHelper.checkSignedResources(Unknown Source) at com.sun.javaws.Launcher.prepareResources(Unknown Source) at com.sun.javaws.Launcher.prepareAllResources(Unknown Source) at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source) at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source) at com.sun.javaws.Launcher.launch(Unknown Source) at com.sun.javaws.Main.launchApp(Unknown Source) at com.sun.javaws.Main.continueInSecureThread(Unknown Source) at com.sun.javaws.Main.access$000(Unknown Source) at com.sun.javaws.Main$1.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Suppressed: com.sun.deploy.security.RevocationChecker$StatusUnknownException at com.sun.deploy.security.RevocationChecker.checkCRLs(Unknown Source) ... 19 more Caused by: java.security.cert.CertPathValidatorException: Response is unreliable: its validity interval is out-of-date at sun.security.provider.certpath.OCSPResponse.verify(Unknown Source) at sun.security.provider.certpath.OCSP.check(Unknown Source) at sun.security.provider.certpath.OCSP.check(Unknown Source) at sun.security.provider.certpath.OCSP.check(Unknown Source) at sun.security.provider.certpath.OCSP.check(Unknown Source) at com.sun.deploy.security.RevocationChecker$2.run(Unknown Source) at com.sun.deploy.security.RevocationChecker$2.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at com.sun.deploy.security.RevocationChecker.doPrivilegedOCSPCheck(Unknown Source) ... 20 more
우선 저는 해당 에러가 발생했을 때 사용했던 방법은 아래와 같습니다.
해결 방안
1. 보안 등급 아주 높음 -> 높음
- 제어판 -> 'Java' 항목 선택
- JAVA항목을 실행하면 Java 제어판이 실행되는데 화면에서 '보안'탭을 선택하면 애플리케이션의 보안 레벨을 설정하는 화면이 나옵니다. 현재 저는 Java 1.7 이상 버전을 사용하여서 '중간' 레벨이 없지만 1.7 미만 버전의 경우 '중간' 레벨이 있기때문에 '중간'이 있을 경우 '중간'을 선택하셔도 됩니다.
- 이렇게 설정했을 경우에도 애플리케이션이 실행되지 않는다면 두번째로 했던 방법은 예외사항 사이트 목록 편집을 통해 사용해야 할 애플리케이션 사이트를 등록하는 방법을 사용했습니다.
2. 예외사항 사이트 목록 편집
- 마찬가지로 제어판에서 'Java' 항목을 선택합니다.
- 그 다음 사이트 목록 편집 버튼을 클릭합니다.
- '사이트 목록 편집' 버튼을 누르시면 예외사항 사이트 목록을 추가할 수 있는 화면이 나옵니다.
- 해당 화면에서 추가 버튼을 클릭 후 예시에 맞게 "https://www.example.com/dir/ or https://www.example.com/app/" 를 넣어주시면 됩니다.
- 만약 위와 같이 했을 경우에도 어플리케이션이 실행되지 않을경우 아래와 같은 방법을 사용했습니다.
3. Java 파일 삭제
- 해당 내용같은 경우에도 제어판을 통해 Java 제어판을 열어뒀다는 가정에서 진행하도록 하겠습니다.
- 아래 화면에서 '파일 삭제' 버튼을 클릭합니다.
- 저 같은 경우에는 '설치된 애플리케이션 및 애플릿' 까지 삭제했는데 위에 2개만 먼저 해보고 안될 경우 추가로 선택해서 삭제하시면 될 것 같아요
4. 인증서 철회 검사 수행 대상 확인 해제
- 제어판 -> Java 제어판 -> "고급"탭 -> "다음에 대한 인증서 철회 확인" -> "확인 안함(권장되지 않음)" 선택 -> 적용
이상입니다~
혹시 더 좋은 방법이 있으시면 댓글 부탁드려요!!
참고 자료
https://www.java.com/ko/download/help/appsecuritydialogs_ko.html#background
'Programming > JAVA' 카테고리의 다른 글
[JAVA] 자바 향상된 for문 (0) | 2021.08.11 |
---|---|
[Java] File Input / Output 입출력 Code (0) | 2020.09.22 |
Java의 기본 개념 (0) | 2020.05.07 |