Um terceiro me pediu para configurar um site FTPS para eles se conectarem.
Estou fazendo isso no IIS 10.
É necessário que o cliente de terceiros use um certificado de cliente vinculado ao usuário FTP.
Eu testei isso e fiz tudo funcionar perfeitamente usando um certificado de cliente autoassinado.
No entanto, também é necessário que o certificado do cliente seja assinado por uma CA confiável.
Estou familiarizado com a geração de certificados de servidor usando win-acme - mas não tenho certeza se é possível gerar um certificado de cliente [não vinculado a um domínio] usando win-acme.
Tentei gerar certificados de cliente usando win-acme, no entanto, como o certificado deve estar vinculado a um nome de usuário em vez de um nome de domínio, não vejo como verificar o certificado.
Como faço para obter um certificado de cliente confiável que pode ser vinculado a um usuário FTP e usado por terceiros para conectar-se ao site FTP?
Muito obrigado antecipadamente por qualquer ajuda.
"Confiável" no sentido usual (ou seja, em todo o mundo) não é útil aqui.
No que diz respeito às CAs "web", só é útil para certificados de e-mail (S/MIME), que interagem com todos os tipos de entidades aleatórias (e que são baseadas em uma identidade mundial para começar), tendo assim um conjunto pré-existente de CAs confiáveis é útil lá – mas eles têm escopos e requisitos diferentes dos certificados de cliente TLS. Não faz sentido ter o mesmo requisito para um certificado de cliente TLS, porque:
O software cliente não tem motivos para se preocupar com a confiança em seu próprio certificado de cliente; ele só é verificado pelo servidor.
Como uma extensão deste ponto, o conjunto de sistemas que lidam com o certificado é conhecido e limitado, portanto há pouco ganho em ter o certificado emitido por uma CA pré-instalada – é bastante fácil implantar a CA naquele (1) sistema que precisa dele.
O certificado representará um tipo de identidade – um usuário de domínio do Windows – que não tem sentido fora desse domínio e não pode ser validado por uma CA externa.
E se uma CA não tiver como certificar a identidade, ela não poderá emitir um certificado para isso. Não importa se isso é feito via ACME ou não, uma CA externa simplesmente não está em condições de emitir certificados com seus nomes de usuário internos do AD.
Então, em vez disso, você deve se tornar o certificador – ou seja, você deve criar uma CA interna (por exemplo, usando os Serviços de Certificados do Active Directory) e fazer com que o servidor IIS "confie" nessa CA, manualmente ou via GPO.
Usar AD CS é a opção mais fácil porque já vem com os modelos corretos que o software AD irá gostar; a emissão do certificado já está vinculada às contas do Windows; Mas tenho certeza de que é possível mapear qualquer certificado aleatório para qualquer conta do Active Directory, então, se desejar, você pode usar XCA, Smallstep ou Easy-RSA.
(Antes que você pergunte, não, não há absolutamente nada de errado em usar CAs diferentes para certificados de cliente e servidor – isso não quebrará o TLS.)