My short answer to my question is: Yabadabbadooh....it is possible and works on my backup system!
It didn't let me sleep, so I started again from the scratch:
First I checked old and new certs for any difference again, the only difference was a different order in the subject, but same contents.
#1
So I made a new root.crt and server.crt with old rootCa.key and old server.key with identically subject order.
Now the text output was identically (subject, Signature Algorithm....)
#2
I made a new userCert with root.crt.
#3
I installed the certs in Postgres and tested -> working.
#4
this time I started with new certs on the top.
cat root_old.crt >> root.crt
cat server_old.crt >> server.crt
cat server_old.key >> server.key
postgres restart ...... AND now old and new certificates are working!
#5
Check the other way around copy old certs over the merged and then:
cat root_new.crt >> root.crt
cat server_new.crt >> server.crt
cat server_new.key >> server.key
postgres restart ...... and it is no longer working. Revert to step 4, all was working well again.
#6
Revocation list: I created a revocation list for the new certificates and installed it in postgres. then:
cat root_old.crl >> root.crl
uncommented the Line: ssl_crl_file = /root.crl
postgres restart ...... AND all is working fine.
I have no clue why it is working now, I can't really believe its the subject order...guess I made something else wrong in the first tries. But I won't try to find out, it works and thats it :-)
Conclusion:
Make root.crt (CA) and server.crt with old keys and as identically as possible. (check subject and such)
Merge certificates, revocation list and key so the the old ones are at the bottom of the file
Now old certificates are working until they expire and you can create new certificates (with new CA) with upgraded Tls for example.
Some additional infos about Tls Version.
When I upgraded my server to Ubuntu 2104 and Postgres 13, the Certificates didn't work. I found the hint to add this line in /etc/ssl/openssl.conf
MinProtocol = TLSv1.0
I know this is no good, but helped for the moment. I couldn't find a way to test if certificates are Tlsv1.0 or higher. The only test if its TlsV1.2 was using pgsql (13) or pgadmin4, both won't work with TlsV1.0
So in my config file for certificate creation, I use this:
MinProtocol = TLSv1.2
psql (13) and pgadmin4 now work with the new certificates. When all old ones are expired, I will change /etc/ssl/openssl.conf to that value again.
Upgrade to next Tls version hast lost its sting :-)