내 서버는 다른 컴퓨터가 DAV에 액세스할 수 있도록 HTTPS를 통해서만 WebDAV를 제공합니다. 에 대한 인증서가 발급되었다고 가정하면 www.myserver.com
WebDAV는 에 있습니다 https://www.myserver.com/webdav
.
여러 가지 이유로 서버 자체가 이 디렉터리를 마운트하기를 원합니다. 실제 URL을 사용하여 인터넷 전체에 라우팅하는 것은 의미가 없으므로 다음과 같은 지름길을 택했습니다.
mount https://localhost/webdav
하지만 이제 문제가 생겼습니다.
/sbin/mount.davfs: the server certificate does not match the server name
이것은 의미가 있습니다. 의 개발자 설명대로 davfs
제가 받은 인증서는 yes www.myserver.com
인데 에서 제공한 것이므로 127.0.0.1
당연히 일치하지 않습니다.
부팅 시 이 볼륨을 자동으로 마운트하고 싶습니다. 아마도 이것은 시작될 때마다 누군가가 인증서를 수락하기 위해 "예/아니요"라고 대답할 때까지 기다리기 때문에 작동하지 않을 것입니다. 이 URL이나 인증서에 대해 이 문제를 무시하도록 davfs에 어떻게 알릴 수 있습니까?
답변1
파일을 편집하면 이 문제를 해결할 수 있습니다 /etc/hosts
. localhost를 정의하는 줄을 다음과 같이 변경하세요.
127.0.0.1 www.myserver.com all_other_aliases localhost
이를 사용하여 ping
다음을 확인하세요.
$ 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
...
이제 설치 중 인증 확인을 위한 이름 조회가 올바르게 해결됩니다.
답변2
인증서에는 여러 개의 호스트 이름과 IP가 있을 수 있으며 이를 주체 대체 이름이라고 합니다.CACert는 이름에 대해서도 항상 이 작업을 수행할 것을 권장합니다..
openssl.conf
불행하게도 동적 변경을 생성하고 요구하기가 약간 까다롭습니다 . 내 메모에 따르면 새 인증서 서명 요청을 생성하는 프로세스는 다음과 같습니다.
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
myhosts.cfg
이 콘텐츠는 어디에 있나요:
[ hostnames ]
subjectAltName = \
DNS:www.myserver.com,\
DNS:localhost,\
IP:127.0.0.1
표준 openssl 구성은 /etc/pki/tls/openssl.cnf
RedHat/CentO에 있으며 다른 배포판의 다른 곳에 있을 수도 있습니다. 실제로 IP에 대해서는 이 작업을 수행한 적이 없지만OpenSSL 문서이것이 가능해야 한다고 제안됩니다.
적절하게 서명된 인증서로 전환하려는 경우 일부 CA에서는 개인 서브넷 IP에 대한 인증서 발급을 거부할 수 있습니다.
답변3
나는 같은 문제를 가지고있다. 내 솔루션은 간단합니다.
echo y | mount -t davfs https://localhost/<URL details> <mount point>
예쁘지는 않지만 매력적일 수도 있습니다( <...>
코드를 귀하의 세부정보로 바꾸세요). 그런 다음 이 명령을 내(Ubuntu)에 추가했고 /etc/rc.local
부팅할 때마다 자동으로 설치되었습니다. 지금까지는 문제 없이 작동합니다.