Shared SSL SuPHP 500 Error Fixed

It took me hours and finally figure out what went wrong after install cheap GoDaddy SSL on shared IP on VPS at Hostgator.

Issues: I bought the SSL certification and install on my VPS, which already have 2 dedicated IP (2 other SSL already installed). So my only option is to install the new SSL on the shared IP. While install the SSL, WHM tells me to install the SSL as nobody due to the IP is shared IP.

After restarting the Apache after installing the SSL, the HTTPS works fine on any file that is NOT PHP. When I load the WordPress, it shows me the 500 server error.

It took me hours to figure the Shared SSL with nobody user group is conflicting with suPHP due to the permission.

Solutions:
The idea of fixing this is to assign the SSL certification from nobody to the right cpanel user that owns the add-on/parked domain name.  So here are the steps:

Assume you are installing SSL on the secured-domain.com.
Assume the main cpanel owner is xyz.
  1. Install SSL as nobody on shared IP with cpanel owner "xyz".
  2. Connect via SSH to your server as root (or as other user with enough permissions)
  3. Change your dir to /var/cpanel/userdata/nobody and type "ls" to get directory listings. You should see a file named "secured-domain.com_SSL"
  4. Move the file to /var/cpanel/userdata/xyz, you could do:
    mv ./secure-domain.com_SSL /var/cpanel/userdata/xyz /secure-domain.com_SSL
  5. Edit the file /var/cpanel/userdata/cooluser/secure.domain.com_SSL using an editor like nano or vi. You should change the following lines:
    documentroot: /home/xyz/public_html
    group: xyz
    homedir: /home/xyz
    user: xyz
  6. Clean up the mess by renaming the following files in /var/cpanel/userdata/nobody to remove the domain reference that cause permission issues. Otherwise, it generate an error ssl_error_rx_record_too_long when I load the secured page.

    main,
    secured-domain.com_SSL.cache
  7. Finally rebuild Apache by running the following commands:
    /scripts/rebuildhttpdconf
    service httpd restart or restart Apache from WHM 

Make sure it doesn't generate error message such as "domain owner conflict detect". It means you did not set the file right or there is a duplicate copy of secured-domain.com_SSL file somewhere.

Now you should be able to run SSL on secured-domain.com without any problem.