2013-05-20 92 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中的用戶帳戶。 –

相關問題