A few days ago I was doing complete migration of old Directadmin server to new Directadmin server which had different hostname. Everything went well but I was unable to register Letsencrypt SSL certificate for new server hostname.
I was getting error like this:
[root@myserver scripts]# ./letsencrypt.sh request my.server.com 4096 Domain does not exist on the system. Unable to find my.server.com in /etc/virtual/domainowners. Exiting... no valid domain found - exiting
First thing I did is I add new hostname as domain to user admin. Certificate was indeed registered than, but not as server hostname (/usr/local/directadmin/conf/cacert.pem). I deleted domain than.
After a little search I found out that I forgot to change servername variable in directadmin.conf. So I changed it, restart directadmin but I was getting the same error. At the end I found out that the easiest way to fix this is to change hostname in Directadmin administration.
- Go to Directadmin as admin user and navigate to Administrator Settings, then set some temporary hostname in Server’s Hostname. Let’s say my.server2.com.
- Wait until cron will make changes – you should see new hostname in Administrator Settings when refreshing page.
- Go in Administrator Settings again and change Server’s Hostname to your old hostname – my.server.com.
- Run letsencrypt.sh again.
This time, certificate was registered successfully.
[root@myserver scripts]# ./letsencrypt.sh request my.server.com 4096 Setting up certificate for a hostname: my.server.com Generating 4096 bit RSA key for let's encrypt account... openssl genrsa 4096 > "/usr/local/directadmin/conf/letsencrypt.key" Generating RSA private key, 4096 bit long modulus ...