Out of the box an indexer cannot reach to a forwarder to pull data -- the system is designed for forwarders to push data to the indexer.
I am running forwarders in my DMZs as well. Here is my setup, this might work for you as well:
I determine the DMZ host that has the least amount of load, and set it up as a regular forwarder. This forwarder is configured to forward via SSL to my indexer as per http://www.splunk.com/base/Documentation/latest/Admin/EncryptandauthenticatedatawithSSL . Furthermore I configure the forwarder to check the receiver's certificate, and require the receiver (indexer) to check the client's (forwarder's) certificate so I can feel better about the correct data coming out of the DMZ. An appropriate firewall ALLOW rule is put in place to let the splunk data port through from that particular DMZ host to the indexer.
Once this DMZ forwarder is working correctly with the indexer, I configure the DMZ forwarder as a receiver as well. Now I deploy lightweight forwarders on all other DMZ hosts, and have them forward to the first (regular) DMZ forwarder. The first (regular) forwarder pools all the data from the lightweight forwarders in the DMZ, cooks (parses) it, and then forwards it over the SSL tunnel to the indexer.
For what it's worth, PCI auditors are fine with this setup.
... View more