Active directory jssecacerts文件应该放在Mac上的什么位置?

Active directory jssecacerts文件应该放在Mac上的什么位置?,active-directory,jvm,ssl-certificate,osx-yosemite,ldapconnection,Active Directory,Jvm,Ssl Certificate,Osx Yosemite,Ldapconnection,我正在尝试将一个运行在Mac OS/X 10.10 Yosemite上Tomcat 7.0.34的网络应用程序连接到一个安全的广告服务器。我得到这个错误: org.springframework.ldap.CommunicationException: qlty-test-ad:636; nested exception is javax.naming.CommunicationException: qlty-test-ad:636 [Root exception is javax.net.ss

我正在尝试将一个运行在Mac OS/X 10.10 Yosemite上Tomcat 7.0.34的网络应用程序连接到一个安全的广告服务器。我得到这个错误:

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
因此,我缺少一个服务器证书。我下载了它,得到了jssecacerts文件,据我所知,我只需要把它放在一个文件夹中,我的JVM就可以找到它并使用它。首先,我直接在jdk中尝试:

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

描述表明lib中应该有一个安全文件夹,但实际上没有。我尝试创建一个,然后将jssecacerts文件放在这里,但没有帮助

然后,我找到了对该文件夹的引用:

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

它包含了cacerts文件,所以我想我知道了一些事情,但是在这里放置jssecacerts也没有帮助。还有

/库/Java/Home/lib/security

其中包含指向文件cacerts和jssecacerts的符号链接


有人知道我应该把jssecacerts放在哪里吗?

你可以在这里找到关于StackOverflow的相关文章:

在Java 1.8上,它应放在以下文件夹下:

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

我在JDK下没有找到任何安全目录,但我想它使用的是与JRE相同的目录

要在Mac上查找Java:


/usr/libexec/java_home-v1.8

这就是我尝试过的。我的JAVA_主页已定义。这是上面列出的第一个文件夹。cacerts通过指向/System/Library/Java/Support/CoreDeploy.bundle/Contents/Home/lib/security的符号链接放置在/Library/Java/Home/lib/security中,但由于某些原因,即使JSSECACTS以相同的方式放置在同一位置,也不会加载。将其置于$Java/Home/jre/lib/security下解决了问题。