Try with another app to confirm it's not a config issue. Try with SSL, maybe you are being proxied. If that fails, then I'd blame the id/secret next. If that fails, check if you paid your S3 bill?
If you can wireshark or tcpdump the non-ssl transaction (whole packets not just the useless headers) you may be able to see a more detailed error in the response.