在Tigase XMPP服务器上使用自签名证书

我正尝试使用使用http://docs.tigase.org/tigase-server/5.3.0/adminguide/#_server_certificates生成的自签名证书来启动XMPP服务器。 但是,服务器不会在logs/tigase-console.loglogs/tigase-console.log下面提到的exception错误

  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_truststorekeystorersa-keystoretigase.mydomain.crttigase.mydomain.csrtigase.mydomain.keytigase.mydomain.pemtruststore

我使用了openssl req -nodes -new -newkey rsa:2048 -keyout tigase.mydomain.key -out tigase.mydomain.csr来生成.key.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”是没有任何私钥的证书也被拿起来添加到密钥库,这是服务器抛出exception的地方。 这一次我只是把具有私钥的tigase.mydomain.pem文件。 服务器很乐意接受我的证书。

对于混淆抱歉。

简而言之,解决方法是将.pem文件放在certs /目录中