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

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

我正在尝试使用使用以下方式生成的自签名证书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:无法存储非私钥
            在 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、、、、、、和keystorersa-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

我在生成密钥和证书时做错了什么吗?

我想要实现的是使用我的自签名证书,因为客户端也属于我。

非常感谢您的帮助。

附言:

  1. 我使用的是从 git 存储库中提取的 master 分支中的最新代码。编译此代码后,版本号为 5.3.0

  2. 使用开放的 JDK 7

谢谢。

答案1

现在已修复。这是我犯的一个愚蠢的错误。我已将生成的所有文件(tigase.mydomain.crt、tigase.mydomain.csr、tigase.mydomain.key、tigase.mydomain.pem)放入其中。而“tigase.mydomain.crt”是没有任何私钥的证书,也被选中添加到密钥库中,这就是服务器抛出异常的地方。这次我只放入了 tigase.mydomain.pem 文件,该文件也包含私钥。服务器很高兴地接受了我的证书。

抱歉造成混淆。

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

相关内容