信頼できない証明書を無視するようにdavfsに指示できますか?

信頼できない証明書を無視するようにdavfsに指示できますか?

私のサーバーは、他のコンピュータがDAVにアクセスできるようにHTTPSを介してのみWebDAVを提供します。の証明書が発行されたと仮定すると、www.myserver.comWebDAVはにありますhttps://www.myserver.com/webdav

いくつかの理由で、サーバー自体がこのディレクトリをマウントしたいと思います。実際のURLを使用してインターネット全体にルーティングすることは意味がないため、次のショートカットを選択しました。

mount https://localhost/webdav

しかし、今問題が発生しました。

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

これは意味があります。の開発者の説明どおり、davfs私が受け取った証明書は yeswww.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.cnfRedHat / CentOにあり、他のディストリビューションの他の場所にある可能性があります。実際、IPについてはこれを行ったことはありませんが、OpenSSLドキュメントこれが可能でなければならないと提案されています。

適切に署名された証明書に切り替えたい場合、一部のCAはプライベートサブネットIPの証明書の発行を拒否することがあります。

答え3

私も同じ問題があります。私の解決策は簡単です。

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

きれいではありませんが、魅力的かもしれません(<...>コードをあなたの詳細に置き換えてください)。その後、このコマンドを私(Ubuntu)に追加し、/etc/rc.local起動するたびに自動的にインストールされました。これまでは問題なく動作します。

関連情報