通常は、何年も接続してきたプロファイルを新しいクライアントで開いたときに、トンネルが始まる前で失敗します。ターミナルには Options error: Unrecognized option ... in client.ovpn:130: tls-remote のような表示が出て、末尾に括弧書きのバージョンが付きます。これは、ファイルにこのクライアントがもう知らないディレクティブが含まれているというパーサーからの苦情として読んでください。

この一つのメッセージで、鍵の再生成やパスワードの再入力、サーバーの確認がなぜ無意味かが分かります。失敗はクライアントが自分の設定を読んでいる最中、ソケットを開く前に起きます。やるべきことは、拒否されたディレクティブを特定し、現在の同等物に置き換えることです。

何かを編集する前に失敗した行を読む

トレイアイコンから起動するのではなくクライアントを自分で実行し、メッセージを見えるようにし、プロファイルのパスを曖昧でないようにします。報告された行でファイルを開き、クライアントが名指ししたトークンを見ます。行番号はプロファイルの行番号であり、同じ数字が括弧内にリリース識別子として現れるため、多くの人がバージョンと混同します。

古いプロファイル生成器は、悪いディレクティブを一つではなく複数出していました。最初のエラーを直してクライアントを再実行すると、次が現れると想定してください。その順序は正常であり、編集で状況が悪化した証拠ではありません。

keysize と tls-remote に何が起きたか

keysize は、プロファイルが暗号を明示的に選んでいた時代に暗号鍵の長さを要求していました。OpenVPN 2.4 はこれを非推奨とし、後のクライアントはオプション表から削除したため、パーサーは今やこの行を無視せず拒否します。現代のネゴシエーションは選択した暗号から鍵の長さを導くので、ディレクティブが制御するものは残っていません。

tls-remote は 2.4 で削除されました。サーバー証明書を期待される名前と比較するもので、その代替である verify-x509-name は名前の照合方法についてより厳格です。古いディレクティブは消えたので、それを持つプロファイルは現在のクライアントでは決して解析されません。

一度に一つのディレクティブを直します。プロファイルが クライアントが提供しない暗号 も指定している場合、それは後で別のエラーを生み、両方の変更を一度の編集に混ぜると、どちらがハンドシェイクを壊したのか分からなくなります。編集のたびに再接続し、エラーテキストを残してください。この習慣は、編集で状況が悪化したときの動作する代替も残します。

サーバー身元チェックを書き直す

代替は期待される名前と比較モードを取ります。verify-x509-name vpn.example.edu name は証明書のサブジェクトがその値と完全に一致することを要求します。他のモードは接頭辞や完全なサブジェクト文字列に一致し、間違ったモードを選ぶと動作中のプロファイルがきれいな検証失敗に変わります。

古い tls-remote 引数がサーバーの完全なコモンネームだった場合、正確な name 比較が通常は正しいです。部分的な値だった場合は、短い正確一致では検証できないので、期待される名前を短くするのではなく接頭辞モードを使ってください。元の値が書かれていない場合は、サーバーを運用する人に公開しているサブジェクトを尋ねてください。

エラーを消すためにチェックを黙らせないでください。サーバー身元の検証を外すと、修正可能なプロファイルの問題が検証されないトンネルに変わり、これはまさにこのディレクティブが防ぐために存在したリスクです。

修正済みプロファイル、ローカル編集、古いクライアント

サーバーが他人のものである場合、最もきれいな道はその人からもらう現在のプロファイルです。あなたのコピーは古い生成器から来ており、相手のエクスポートはすでに現在のディレクティブを使っています。一度ダウンロードすればエラーのカテゴリ全体が消え、今後の編集を一か所に保てます。

両端を自分が持っている場合は、コピーを編集して元を残します。一つのディレクティブを変えて保存し、接続し、テストしたクライアントのバージョンを記録します。複数回の作業で編集されたプロファイルは記憶から監査するのが難しいので、編集ごとに短いメモを残してください。編集したファイルに対してコマンドラインで実行すると、エラーが直接ターミナルに出るのでこのループが速くなります。

2.4 より前のクライアントに固定したり戻したりしてもメッセージは消え、決して更新されない機器ではそれが唯一実行可能な暫定策かもしれません。現在のデスクトップ上の古いクライアントは通常、古いライブラリとサポートされない設定を意味し、解決ではなく先送りされた問題なので、これは一時的なものとして扱ってください。

トンネルが上がったら、プロファイル全体をもう一度読んでください。削除されたディレクティブを一つ持っていたプロファイルは別のものも持っていることが多く、二つ目は一つ目が消えた後にだけ現れます。

関連記事