Good call for using VPN, but I do not want to go that path for some reasons.
I had tried modifying the proxy.xml file before I posted the thread, when I SSHed into the ESXi host. But I went through the vMA process anyway, and "vifs --server <hostname> --username <username> --put <local_directory_path>/proxy.xml /host/proxy.xml" actually gave me the modified proxy.xml already, which apparently did not work.
Here is the block I modified in /etc/vmware/firewall/services.xml :
<service id='0017'>
<id>vSphereClient</id>
<rule id='0000'>
<direction>inbound</direction>
<protocol>tcp</protocol>
<porttype>dst</porttype>
<port>902</port>
</rule>
<rule id='0001'>
<direction>inbound</direction>
<protocol>tcp</protocol>
<porttype>dst</porttype>
<port>8443</port>
</rule>
<enabled>true</enabled>
<required>true</required>
</service>
Then I refreshed the firewall with: "esxcli network firewall refresh".
Here is what my proxy.xml looks like:
<ConfigRoot>
<httpPort>80</httpPort>
<httpsPort>8443</httpsPort>
<EndpointList>
//...and so on
Then I restarted the Management Agents as suggested.
The result was that I still need to access from Port 443 and Port 8443 did not response at all.
I am not sure what have I done wrong, but this is really frustrating.