web-dev-qa-db-ja.com

UbuntuでTLSクライアント証明書認証でwebdav接続を確立する方法は?

This answerは、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機関)のインストールを含む指示が必要です)。

PS: これ 質問は関連しているようです(同一ではありません)が、答えもありません。

2
Bruni

うまくいった解決策の1つは、 davfs を使用することです。

Installation

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

ファイルを保存して終了(Ctrl + O、 Ctrl + x nano)で、clientcertに正しい権限があることを確認してください

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. Webサイトでは、上記のシナリオでは機能しないdavs://形式のリンクが提供されています

(file://という形式でリンクを提供することにより、このサーバーサイドを解決しました。

  1. 上記のようにマウントされたフォルダーと同期しようとすると、Freefilesyncは次のエラーを返します。

    「/ path/to/mountpoint」にディレクトリロックを設定できません。

    ファイル "/path/to/mountpoint/sync.ffs_lock"に書き込めません。

    エラーコード13:許可が拒否されました(オープン)

updateこれを軽減するために、rsyncに切り替えました。

2
Bruni

これは自己署名証明書であるため、両方のエンドにCAパブリック証明書がインストールされていることを確認する必要があります。

一部のパッケージは中央証明書ストアを使用しないため、通常、これはすべてのパッケージで同じようには機能しません。

UbuntuにルートCA証明書をインストールする手順をいくつか示します ルート証明書をインストールするにはどうすればよいですか?

0
Amias