* What functionality needs to be included in the Server's Certificate (i.e. ability to encrypt, sign, support for SSL, etc.. I'm guessing we need to use the Certificate Template 1.3.6.1.5.5.7.3.1 per the HowTo's but thats if we are using Self Signed Certs as opposed to requesting a Cert from our local CA)?
We regularly use OpenSSL-generated certificates with no special functionality, so I believe that none is required. How are you generating your certificates?
* What certificate store does the Server's Public/Private Cert need to be installed in on the Server? (My assumption is Local Computer -> Personal, but this isn't documented anywhere)
That depends on what type of server you are using. edtFTPD keeps its private key and certificate in a files called server.key.pem and server.cert.pem, respectively; it does not use the Windows certificate stores. FileZilla Server also does not use the Windows stores, but keeps it in a file in the "FileZilla Server" directory.
Anyway, from a client point of view, it doesn't really matter how the server stores its certificates.
* What certificate store does that Server's Root Cert need to be installed in on the Server? (My assumption is Local Computer -> Trusted Root Certification Authorities)
Same as above.
* What certificate store does the Server's Public Cert need to be installed in on the Client? (My assumption is Current User -> Personal for standalone apps and Local Computer -> Personal for Windows Services according to the How To's)
You need to install it in a "Trusted root certification authorities" store. As you know there are several "locations" that have such store. I believe you can install it into any location related to the user that is running the FTP client application, e.g. Local Machine or Current User.
* Usually Certs from a CA have both the public and private keys stored together, then once installed into the Cert Store, the public key can be exported and distributed freely. Where is the documentation on what is exceptable in edtFTP and how it handles the Public, Private and Public/Private key variations?
As far as the server's certificate goes, the client does not require access to the server's private key. If the server uses certificate-based authentication then you will need both the private key and the certificate on the client-side.
So, in short, for certificate-based server validation you only ever need the server's certificate and for certificate-based client authentication you always need both the private key and the certificate.
* Since the Public/Private combined Key is installed in the Certificate Store (and both keys Public/Private combo and Public can't be installed into the same Cert store at the same time), what is the reasoning behind setting up the separate public TLSRSACertificateFile and TLSRSACertificateKeyFile parameters in the FTP Server?
In the default configuration of edtFTPD, the key and certificate are in separate files. I suppose you could probably store them in a single file and set both TLSRSACertificateFile and TLSRSACertificateKeyFile to point to this file, but I haven't tried it so I'm not sure. I guess the reasoning is that the server administrator might want to put them in separate file so they should have the option.
- Hans (EDT)