0

Mac, OS/X 10.10 (Yosemite)의 Tomcat 7.0.34에서 실행중인 webapp을 보안 AD 서버에 연결하려고합니다. 이 오류가 발생합니다 :jssecacerts 파일은 Mac에서 어디에 배치해야합니까?

org.springframework.ldap.CommunicationException: qlty-test-ad:636; nested exception is javax.naming.CommunicationException: qlty-test-ad:636 [Root exception is javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target] 
at org.springframework.ldap.support.LdapUtils.convertLdapException(LdapUtils.java:100) 
at org.springframework.ldap.core.support.AbstractContextSource.createContext(AbstractContextSource.java:266) 
at org.springframework.ldap.core.support.AbstractContextSource.getContext(AbstractContextSource.java:106) 
at org.springframework.ldap.core.support.AbstractContextSource.getReadOnlyContext(AbstractContextSource.java:125) 
at org.springframework.ldap.core.LdapTemplate.executeReadOnly(LdapTemplate.java:792) 
at org.springframework.ldap.core.LdapTemplate.lookup(LdapTemplate.java:822) 
at org.springframework.ldap.core.LdapTemplate.lookupContext(LdapTemplate.java:1315) 
at com.enonic.cms.ee.ldap.LdapConnector.lookup(LdapConnector.java:261) 
at com.enonic.cms.ee.ldap.LdapRemoteUserStorePlugin.verifyConnection(LdapRemoteUserStorePlugin.java:489) 
... 87 more 

그래서 서버 인증서가 누락되었습니다. 내가 InstallCert으로 다운로드하고 jssecacerts 파일을 가지고 있고, 이해할 수있는 한, 내 JVM이 그것을 찾아서 사용할 수있는 폴더에 배치해야합니다. 우선 직접 JDK에, 시도 :

/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home/lib/

설명은 "LIB"내부 "보안"폴더가 있어야 제안하지만,이 없다. 나는 하나를 만들고 나서 여기에 jssecacerts 파일을 넣으려고했지만 도움이되지 않았다.

그럼,이 폴더에 대한 참조를 발견 : 그것은 allready은 "cacerts에"파일을 포함

/System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/lib/security/

를, 그래서 내가 뭔가에라고 생각하지만, 여기에 "jssecacerts에"를 배치하는 것은 도움이되지 않습니다 어느 한 쪽. 두 파일에 대한 기호 링크 ("cacerts에"와 "jssecacerts에")를 포함

/Library/Java/Home/lib/security

도 있습니다.

아무도 내가 어디에 넣어 야하는지 알지 못합니까? jssecacerts?

답변

0

당신은 여기에 StackOverflow에 관련 기사를 찾을 수 있습니다 How to obtain the location of cacerts of the default java installation?가이 폴더에 배치해야 자바 1.8에

:

/Library/Java/JavaVirtualMachines/jdk1.8.0_xx.jdk/Contents/Home/jre/lib/security

내가 JDK에서 보안 디렉터리를 찾을 수 없습니다 ,하지만 JRE와 같은 것을 사용하고 있다고 가정합니다.

는 Mac에서 자바를 확인하는 방법은 다음과 같습니다

/usr/libexec/java_home -v 1.8

+0

이 내가 시도하는 것이다. 내 JAVA_HOME이 정의되었습니다. 위에 나열된 첫 번째 폴더입니다. "cacerts"는 /System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/lib/security에 대한 심볼릭 링크를 통해/Library/Java/Home/lib/security에 있지만, 어떤 이유로 jssecacerts가 아닙니다. 동일한 방법으로 동일한 장소에 배치 되더라도로드됩니다. – Sivesind

+0

$ JAVA/HOME/jre/lib/security 아래에 넣으면 문제가 해결되었습니다. – Sivesind