Ssl

將自簽名證書與 Tigase XMPP 伺服器一起使用

  • October 10, 2014

我正在嘗試使用使用http://docs.tigase.org/tigase-server/5.3.0/adminguide/#_server_certificates生成的自簽名證書來啟動 XMPP 伺服器。但是,伺服器不會開始記錄下面提到的異常錯誤logs/tigase-console.log

SSLContextContainer.init() 警告:無法從文件載入證書:certs/tigase.mydomain.crt
java.security.KeyStoreException:無法儲存非 PrivateKeys
在 sun.security.provider.JavaKeyStore.engineSetKeyEntry(JavaKeyStore.java:250)
在 sun.security.provider.JavaKeyStore$JKS.engineSetKeyEntry(JavaKeyStore.java:55)
在 java.security.KeyStore.setKeyEntry(KeyStore.java:909)
在 tigase.io.SSLContextContainer.addCertificateEntry(SSLContextContainer.java:199)
在 tigase.io.SSLContextContainer.init(SSLContextContainer.java:421)
在 tigase.io.TLSUtil.configureSSLContext(TLSUtil.java:89)
在 tigase.conf.ConfiguratorAbstract.setProperties(ConfiguratorAbstract.java:815)
在 tigase.conf.ConfiguratorAbstract.setup(ConfiguratorAbstract.java:550)
在 tigase.conf.ConfiguratorAbstract.componentAdded(ConfiguratorAbstract.java:182)
在 tigase.conf.Configurator.componentAdded(Configurator.java:50)
在 tigase.conf.Configurator.componentAdded(Configurator.java:33)
在 tigase.server.AbstractComponentRegistrator.addComponent(AbstractComponentRegistrator.java:115)
在 tigase.server.MessageRouter.addRegistrator(MessageRouter.java:141)
在 tigase.server.MessageRouter.setConfig(MessageRouter.java:696)
在 tigase.server.XMPPServer.start(XMPPServer.java:142)
在 tigase.server.XMPPServer.main(XMPPServer.java:112)

這裡似乎出了什麼問題。我嘗試使用和不使用密碼生成私鑰,但我得到了同樣的異常。

放置在certs/目錄中的文件是client_truststore, keystore, rsa-keystore, tigase.mydomain.crt, tigase.mydomain.csr, tigase.mydomain.key,tigase.mydomain.pemtruststore

我曾經openssl req -nodes -new -newkey rsa:2048 -keyout tigase.mydomain.key -out tigase.mydomain.csr生成.keyand .csr

我曾經openssl x509 -req -days 365 -in tigase.mydomain.csr -signkey tigase.mydomain.key -out tigase.mydomain.crt生成.crt

我曾經cat tigase.mydomain.crt tigase.mydomain.key > tigase.mydomain.pem生成.pem

我在生成密鑰、證書時做錯了嗎?

我想要實現的是使用我的自簽名證書,因為客戶也將屬於我。

非常感謝您的幫助。

PS:

  1. 我正在使用從 git 儲存庫中提取的 master 分支的最新程式碼。編譯此程式碼給出版本 = 5.3.0
  2. 使用開放的 JDK 7

謝謝。

現在已修復。這是我犯的一個愚蠢的錯誤。我已經把所有的文件(tigase.mydomain.crt、tigase.mydomain.csr、tigase.mydomain.key、tigase.mydomain.pem)生成了。並且“tigase.mydomain.crt”是沒有任何私鑰的證書也被拾取以添加到密鑰庫,這是伺服器拋出異常的地方。這次我只放了也有私鑰的 tigase.mydomain.pem 文件。伺服器很高興地接受了我的證書。

很抱歉造成混亂。

簡而言之,解決方案是將 .pem 文件放在 certs/ 目錄中

引用自:https://serverfault.com/questions/634701