There are 2 ways that programs will typically deal with SSL certificates: some apps expect the private key and the certificate to be in the same file, and others expect them in separate files. Many will allow both, with the certificate (with optional key as well) as a required option, and specifying the key in a separate file as an optional input.
Most will also have a separate input for the CA chain; this would be where you use file #4 in your list. Some can take a directory instead of a chain file; you would put files #1-3 in there. (Some also expect the filenames of these to be a hash of the certificate's DN).
Naming the files as .crt or .key is largely for your own sanity; most programs don't care. As long as you're giving the program the input format it expects (PEM is the most common; DER and PKCS7 are less common) it should be OK. (Windows is a little pickier; it likes the extensions .crt for PEM-format certificates with keys, and .pfx or .p12 for PKCS12-format client certs).