Did another try. Directly map 8443 to 443 by using apache reverse proxy, using same self-generated certificate with the soap service. Got the same behavior, CP didn't access service url and hang. But without reverse proxy, just access server directly using port 8443, it works, no matter using what domain, internal or public.
Base on my testing, it sounds like CP doesn't support reserve proxy, at least apache reverse proxy.
Is reserve proxy not supported by CP? Or do I miss something here?