如何在 Ubuntu 中建立带有 TLS 客户端证书认证的 webdav 连接?

如何在 Ubuntu 中建立带有 TLS 客户端证书认证的 webdav 连接?

答案非常适合与 nautilus 建立 webdav 或 webdavs 连接。

但是,当我在使用自签名 TLS 客户端证书认证保护的 webdav 共享上尝试此操作时,我得到:

第一的:

The signing certificate authority is not known.
Certificate information:
....
Are you really sure you would like to continue?

当我点击“是”之后:

...Unhandled error message: HTTP Error: Error performing TLS handshake: A TLS fatal allert has been received.

...而且我从未被要求提供客户端证书。我在 Ubuntu 16.04 上安装了 Unity,并且最好像这样与 Nautilus 一起工作。 我需要包括安装客户端证书(和 CA 机构)在内的说明。

附言:问题似乎相关(不相同),但也没有答案。

答案1

一个有效的解决方案是使用达夫斯

安装

安装 davfs

sudo apt-get install davfs2

配置

然后将证书从 CA(pem 格式)复制到 /ect/davfs2/certs,将客户端证书(.p12 格式)复制到 /ect/davfs/certs/private,并修改配置文件,例如

sudo nano /etc/davfs2/davfs2.conf

取消注释(删除 #)trust_ca_cert 和 clientcert 行并添加相应证书的完整路径,例如

trust_ca_cert         /etc/davfs2/certs/ca.cert.pem
#servercert
clientcert            /etc/davfs2/certs/private/xxx.yyy.com.p12

保存文件并退出( nano 中的Ctrl+ OCtrl+ x),并确保客户端证书具有正确的权限

sudo su
chmod 0600 /etc/davfs2/certs/private/xxx.yyy.com.p12
exit

可选配置凭证文件

您可以使用位于以下位置的凭证文件:

/etc/davfs2/secrets

这样你就不必每次都输入密码了。该文件有很好的语法示例,我就不在这里重复了。

用法

要挂载文件系统,请运行

sudo mount -t davfs -o uid=bruni,gid=users https://serveraddress /home/bruni/mountpoint

缺点

该解决方案的问题是:

  1. 该网站提供的链接形式为 davs://,这不适用于上述情况

(我们通过提供 file:// 形式的链接解决了服务器端的问题

  1. 当我尝试与上述安装的文件夹同步时,Freefilesync 返回以下错误:

    无法为“/path/to/mountpoint”设置目录锁。

    无法写入文件“/path/to/mountpoint/sync.ffs_lock”。

    错误代码 13:权限被拒绝(打开)

更新为了缓解这个问题,我已经切换到 rsync。

答案2

由于这是自签名证书,因此您需要确保两个都已安装CA公共证书。

这通常不会以相同的方式对所有包起作用,因为有些包不使用中央证书存储。

以下是在 ubuntu 中安装根 CA 证书的一些说明 如何安装根证书?

相关内容