將自簽名證書與 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:無法儲存非 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.pem
和truststore
我曾經
openssl req -nodes -new -newkey rsa:2048 -keyout tigase.mydomain.key -out tigase.mydomain.csr
生成.key
and.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:
- 我正在使用從 git 儲存庫中提取的 master 分支的最新程式碼。編譯此程式碼給出版本 = 5.3.0
- 使用開放的 JDK 7
謝謝。
現在已修復。這是我犯的一個愚蠢的錯誤。我已經把所有的文件(tigase.mydomain.crt、tigase.mydomain.csr、tigase.mydomain.key、tigase.mydomain.pem)生成了。並且“tigase.mydomain.crt”是沒有任何私鑰的證書也被拾取以添加到密鑰庫,這是伺服器拋出異常的地方。這次我只放了也有私鑰的 tigase.mydomain.pem 文件。伺服器很高興地接受了我的證書。
很抱歉造成混亂。
簡而言之,解決方案是將 .pem 文件放在 certs/ 目錄中