Ssl
我可以讓 davfs 忽略不受信任的證書嗎?
我的伺服器僅通過 HTTPS 提供 WebDAV,以便其他機器可以訪問 DAV。假設頒發證書
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
,我得到的證書是 forwww.myserver.com
但它是由 提供的127.0.0.1
,所以它當然不匹配。我想在啟動時自動掛載這個卷。大概這行不通,因為在每次啟動時,它都會等待有人回答 Y/N 以接受證書。我怎樣才能讓 davfs 忽略這個 URL 或這個證書的這個問題?
/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 ...
現在,掛載期間用於認證檢查的名稱查找應該可以正確解析。
您的證書中可以有多個主機名和 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 頒發證書。