Posso fazer o davfs ignorar certificados não confiáveis?

2

Meu servidor fornece somente WebDAV sobre HTTPS, para que outras máquinas possam acessar o DAV. Digamos que o certificado seja emitido para www.myserver.com e o WebDAV esteja em https://www.myserver.com/webdav .

Por vários motivos, também quero que o próprio servidor monte esse diretório. Como não há sentido em usar a URL e o roteamento reais em toda a Internet, só uso um atalho:

mount https://localhost/webdav

Mas agora tenho um problema:

/sbin/mount.davfs: the server certificate does not match the server name

O que faz sentido. Conforme explicado pelo desenvolvedor de davfs , o certificado que obtive é de www.myserver.com , mas é apresentado por 127.0.0.1 , então é claro que não corresponde.

Eu quero montar este volume automaticamente na inicialização. Presumivelmente, isso não funcionaria, já que a cada inicialização, ele esperaria que alguém respondesse Y / N para aceitar o certificado. Como posso fazer o davfs ignorar esse problema para este URL ou para este certificado?

    
por Superbest 21.04.2015 / 11:27

3 respostas

1

Você pode contornar esse problema editando o arquivo /etc/hosts . Basta alterar a linha em que localhost é definido para algo assim:

127.0.0.1    www.myserver.com all_other_aliases localhost

O uso ping para verificar:

$ ping www.myserver.com
PING www.myserver.com (127.0.0.1) 56(84) bytes of data.
64 bytes from www.myserver.com (127.0.0.1): icmp_req=1 ttl=64 time=0.013 ms
...

Agora, a pesquisa de nomes para a verificação de certificação durante a montagem deve ser resolvida corretamente.

    
por 21.04.2015 / 11:45
1

Você pode ter vários Hostnames e IPs em seu certificado, eles são chamados de Nomes Alternativos de Assunto. O CACert recomenda sempre fazer isso, mesmo para um nome .

Infelizmente, criá-los é um pouco mais complicado e envolve alterar seu openssl.conf instantaneamente. Cribbing das minhas anotações, gerando sua nova solicitação de assinatura de certificado, segue as seguintes linhas:

openssl req -sha256 -key your-private-key.pem -out your-csr.pem \
        -subject "(your subject)" \
        -config <(/bin/cat /etc/pki/tls/openssl.cnf ./myhosts.cfg) \
        -reqexts hostnames

onde myhosts.cfg tem conteúdo como este:

[ hostnames ]
subjectAltName = \
  DNS:www.myserver.com,\
  DNS:localhost,\
  IP:127.0.0.1

A configuração padrão do openssl reside em /etc/pki/tls/openssl.cnf no RedHat / CentOs, e provavelmente em outras distribuições. Eu nunca fiz isso para IPs, mas documentos do OpenSSL sugerem que ele deve ser possível.

Se você quiser mudar para certs devidamente assinados, poderá descobrir que algumas CAs podem se recusar a emitir certificados para IPs de sub-rede privada.

    
por 21.04.2015 / 12:05
0

Eu tive o mesmo problema. Minha solução foi tão simples assim:

echo y | mount -t davfs https://localhost/<URL details> <mount point>

Talvez não seja bonito, mas funciona como um encanto (substitua o código em <...> por seus detalhes). Em seguida, adicionei este comando ao meu /etc/rc.local (Ubuntu) e ele é montado automaticamente a cada inicialização. Funciona sem problemas até agora.

    
por 21.10.2016 / 12:56

Tags