Acabei adotando uma abordagem completamente diferente. Eu configurei um servidor fora do firewall usando Nginx com SSL e BasicAuth. Isso tem funcionado muito bem.
Aqui está a minha situação: Há um número de desenvolvedores que precisam ter acesso para poder instalar as gemas do Ruby e os ovos python de uma fonte remota. Atualmente, temos um servidor dentro do nosso firewall que hospeda as gemas e os ovos. Agora queremos a capacidade de instalar coisas hospedadas nesse servidor fora do nosso firewall. Uma vez que algumas das gemas e ovos que hospedamos são proprietários, eu gostaria de bloquear um pouco o acesso a essa máquina, o mais discretamente possível para os desenvolvedores.
Meu primeiro pensamento foi usar algo como chaves ssh. Então, passei algum tempo olhando para autenticação mútua de SSL. Consegui configurar tudo e funcionar corretamente, testando com enrolar, mas o mais lamentável foi que precisei passar argumentos extras para enrolar, para que ele soubesse sobre o certificado, a chave e a autoridade de certificação.
Eu queria saber se há algo como o agente ssh que posso configurar para fornecer essas informações automaticamente para que eu possa enviar os certificados e as chaves para as máquinas do desenvolvedor, para que os desenvolvedores não precisem fazer login ou fornecer chaves cada vez que eles tentam instalar algo.
Outra coisa que eu quero evitar é ter que modificar o comando 'gem' e o comando 'pip' para fornecer chaves quando elas fizerem a conexão http.
Quaisquer outras sugestões que possam resolver este problema (não relacionadas à autenticação mútua de SSL) também são bem-vindas.
EDITAR: Eu tenho continuado a pesquisar isso e me deparei com stunnel . Eu acho que isso pode ser o que eu estou procurando, qualquer feedback sobre stunnel também seria ótimo!
Um pouco específico para HPC e Grid Security Infrastructure (APIs são públicas e disponíveis). MyProxy permite que os usuários obtenham credenciais de proxy RFC 3820. Você basicamente obteria o certificado de proxy (curto prazo) depois que as credenciais do certificado original fossem verificadas pelo MyProxy. curl
deve funcionar com os certificados RFC 3820. Há também um SSH disponível que pode usar o GSI. Veja MyProxy - o gerenciador de credenciais X.509 .
(Você não está dizendo qual plataforma está usando.)
No OSX, o Keychain pode lidar com isso. Embora não seja exatamente o mesmo que o ssh-agent, você pode configurá-lo para permitir o acesso à chave privada por determinados aplicativos (com ou sem aviso, dependendo das configurações escolhidas).
No Linux, você pode usar o Chaveiro do Gnome , que tem objetivos semelhantes. Não tenho certeza se ele oferece a mesma granularidade que o Keychain da OSX, em termos de concessão de direitos diferentes por aplicativo, mas você também pode desbloqueá-lo no login.
Por que não usar um IPSEC para configurar um túnel confiável para os serviços que você precisa - vai ser um pouco mais trabalhoso para você configurar e configurar pela primeira vez, mas depois disso pode ser transparente.
O mesmo pode ser verdadeiro usando o SSH (deixe as sessões ficarem por um longo tempo) - isso pode ser feito com uma senha necessária uma vez no início de uma sessão SSH ou se estiver tudo bem, você pode escolher usar chaves assimétricas sem senha; você terá que fazer uma alteração de configuração ou um ajuste de DNS para que os nomes funcionem corretamente se você estiver usando o SSH, já que terá que atingir a porta de encaminhamento local com o seu cliente para acessar o servidor remoto.