However, since the client is not going to be accessing the server via a public URL, my understanding is that I cannot use a signed SSL certificate, leaving me open to SSL certificate injection attacks.
Isso é um absurdo. Não há exigência de que os certificados assinados por CAs confiáveis só devam ser usados em URLs acessíveis publicamente.
Outras opções? IPSec, OpenVPN, etc. Mas honestamente, configurar o SSL com um certificado confiável é provavelmente sua opção mais rápida e simples. Ofereça aos seus clientes a capacidade de fazer upload de sua própria chave / certificado para o servidor e, em seguida, eles podem decidir se desejam usar uma CA privada ou pública.