2013-05-20 66 views
0

我们有一个邮件系统,可以通过ldaps URL修改活动目录users/orgnization_unit。它需要一个存储在java keystore中的服务器证书来创建一个ssl/tls连接。如何从samba4 DC服务器获取Java应用程序的ssl证书?

现在我想使用samba4作为域控制器而不是Windows服务器,但是我没有找到像这样的活动目录的指南: ​​。

如何从samba4 DC服务器获取ssl证书?它甚至有可能吗?


我使用的是fedora 18,但没有使用fedora发布的samba包,因为它不支持域控制器。根据本指南,我从源代码编译了samba-4.0.5:http://linuxdrops.com/install-samba-4-on-centos-rhel-fedora-debian-ubuntu/

+0

请参阅此链接:[SWAT和SSL(http://www.samba.org/samba/docs/swat_ssl.html)。忽略SWAT相关线路,您只对生成证书和密钥 – Raza

+0

@Raza感兴趣,感谢您的链接。我不仅仅关心如何生成它,还有如何配置它以让客户端应用程序与samba4 ldaps服务器协同工作,证书是否必须由Microsoft发布或者是否还有其他问题。类似的东西。 –

+0

拥有证书后,任何基于PKI的通信都是一样的。无法在评论中提供详细信息,因此我正在为您创建答案。 – Raza

回答

1

您需要做的第一件事就是从Samba服务器获取证书,如之前发送给您的Samba文档中所述。一旦你有了证书,那么在Windows或其他机器上使用它就没有什么两样了。

你需要做的是创建一个KeyStore。对于我的工作,我使用了http://portecle.sourceforge.net/。这是一个非常好的基于GUI的工具,您可以使用它创建自己的密钥库并将密钥添加到密钥库。如果你不喜欢,你可以使用你的选择之一。

使用此工具需要先创建密钥库,然后将证书添加到密钥库。您的密钥库会保留密钥,并且会有密码。然后你需要设置系统属性。像这样:

System.setProperty("javax.net.ssl.trustStore", "keystore file path"); 
System.setProperty("javax.net.ssl.keyStorePassword", "keystore file password"); 

就是这样。如果您发现任何困难,那么我会建议做一个谷歌的“在java中使用证书”,你会得到大量的资源。

请注意,它会给你一些头痛,让所有这些工作。但相信我,没有什么更多。

我希望你现在能接受这个作为一个答案:)

+0

这么简单吗?是的,除了我不需要手动生成证书。在配置samba4 dc之后,samba4已经在'/ usr/local/samba/private/tls'目录下生成了ca.perm&cert.perm&key.perm。所以,我只是将cert.perm复制到客户端,并将其导入到java密钥库:'keytool -import -keystore samba4-cert.jks -file cert.perm',完成!现在,邮件系统和我的程序都可以使用ldaps URL来修改AD中的用户帐户。 –

相关问题