What is the process of migrating from one machine to another?

Getting this error, assuming that encrypted credentials do not survive the move?

e[1;31mERRORe[m [main]: org.jivesoftware.util.AesEncryptor - AES cipher failed
javax.crypto.IllegalBlockSizeException: last block incomplete in decryption
	at org.bouncycastle.jcajce.provider.symmetric.util.BaseBlockCipher.engineDoFinal(Unknown Source) ~[bcprov-jdk18on-1.76.jar:1.76.0.0]
	at javax.crypto.Cipher.doFinal(Cipher.java:2200) ~[?:?]
	at org.jivesoftware.util.AesEncryptor.cipher(AesEncryptor.java:127) [xmppserver-4.8.1.jar:4.8.1]
	at org.jivesoftware.util.AesEncryptor.decrypt(AesEncryptor.java:101) [xmppserver-4.8.1.jar:4.8.1]
	at org.jivesoftware.util.AesEncryptor.decrypt(AesEncryptor.java:95) [xmppserver-4.8.1.jar:4.8.1]
	at org.jivesoftware.util.XMLProperties.getProperty(XMLProperties.java:215) [xmppserver-4.8.1.jar:4.8.1]
	at org.jivesoftware.util.XMLProperties.getProperty(XMLProperties.java:171) [xmppserver-4.8.1.jar:4.8.1]
	at org.jivesoftware.util.JiveGlobals.getXMLProperty(JiveGlobals.java:334) [xmppserver-4.8.1.jar:4.8.1]
	at org.jivesoftware.database.DefaultConnectionProvider.loadProperties(DefaultConnectionProvider.java:397) [xmppserver-4.8.1.jar:4.8.1]
	at org.jivesoftware.database.DefaultConnectionProvider.<init>(DefaultConnectionProvider.java:73) [xmppserver-4.8.1.jar:4.8.1]
	at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) [?:?]
	at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [?:?]
	at java.lang.reflect.Constructor.newInstance(Constructor.java:490) [?:?]
	at java.lang.Class.newInstance(Class.java:584) [?:?]
	at org.jivesoftware.database.DbConnectionManager.ensureConnectionProvider(DbConnectionManager.java:101) [xmppserver-4.8.1.jar:4.8.1]
	at org.jivesoftware.database.DbConnectionManager.getConnection(DbConnectionManager.java:162) [xmppserver-4.8.1.jar:4.8.1]
	at org.jivesoftware.util.JiveProperties.loadProperties(JiveProperties.java:472) [xmppserver-4.8.1.jar:4.8.1]
	at org.jivesoftware.util.JiveProperties.init(JiveProperties.java:108) [xmppserver-4.8.1.jar:4.8.1]
	at org.jivesoftware.util.JiveProperties.getInstance(JiveProperties.java:84) [xmppserver-4.8.1.jar:4.8.1]
	at org.jivesoftware.util.JiveGlobals.getProperty(JiveGlobals.java:571) [xmppserver-4.8.1.jar:4.8.1]
	at org.jivesoftware.util.cache.CacheFactory.<clinit>(CacheFactory.java:99) [xmppserver-4.8.1.jar:4.8.1]
	at org.jivesoftware.openfire.XMPPServer.initialize(XMPPServer.java:380) [xmppserver-4.8.1.jar:4.8.1]
	at org.jivesoftware.openfire.XMPPServer.start(XMPPServer.java:660) [xmppserver-4.8.1.jar:4.8.1]
	at org.jivesoftware.openfire.XMPPServer.<init>(XMPPServer.java:220) [xmppserver-4.8.1.jar:4.8.1]
	at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) [?:?]
	at jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [?:?]
	at java.lang.reflect.Constructor.newInstance(Constructor.java:490) [?:?]
	at java.lang.Class.newInstance(Class.java:584) [?:?]
	at org.jivesoftware.openfire.starter.ServerStarter.start(ServerStarter.java:92) [startup.jar:4.8.1]
	at org.jivesoftware.openfire.starter.ServerStarter.main(ServerStarter.java:56) [startup.jar:4.8.1]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
	at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:84) [i4jruntime.jar:?]
	at com.exe4j.runtime.WinLauncher$2.run(WinLauncher.java:90) [i4jruntime.jar:?]

Is anyone at all able to answer this question? Or no one has ever migrated an instance from one host to another, and I am the first one who needs to accomplish this?

If you gonna use the same domain of course, the process is pretty straight forward.
Make a database backup, also backup your config file, and optionally the http files(of the httpfileupload plugin).
Create the database on the target machine using your database backup.
install openfire and replace your config file with the backup or lead it to the same database via the guided installer(you gonna need encryption passwords, database passwords etc…).
IIRC this is all.

There’s a ‘security’ folder in Openfire’s conf directory that should also be copied from the old to the new server.

1 Like