そのチュートリアルはどの Easy-RSA パッケージ構成を使っていたのか
vars や build-key を前提とするチュートリアルは Easy-RSA 2 を説明しています。何かをコピーする前に、インストール済みの世代と PKI ワークスペースを確認してください。
チュートリアルは Easy-RSA ディレクトリの vars を編集するよう指示しますが、手元のディレクトリにそのファイルはありません。これは通常、パッケージが壊れているのではなく、世代の不一致です。Easy-RSA 2 は build-key のようなシェルヘルパーの隣に vars ファイルを置いていましたが、Easy-RSA 3 は easyrsa コマンドを一つ提供し、テンプレートとコマンドラインオプションから設定を読みます。ガイドから何かをコピーする前に、どちらを使っているかを確認してください。
それぞれが次を狭めるので、これらの確認は順番に行ってください。
1. インストールされているものを棚卸しする
Debian ファミリーのシステムでは、パッケージマネージャーに実際に登録されたファイルを尋ねます:
dpkg-query -L easy-rsa現在の Debian パッケージの一覧には、make-cadir、easyrsa プログラム、OpenSSL 設定テンプレート、vars.example が含まれます。これはこのディストリビューションが何を出荷したかを示します。別のディストリビューションや上流の tar アーカイブが同じ世代をどう配置したかは示さないので、パスを解釈する前にバージョンを読んでください。出力に make-cadir がまったく表示されない場合、壊れたインストールではなく、別のパッケージング世代を見ている可能性が高いです。
easyrsa --version は、どの世代について読んでいるかを知る最短の方法であり、ガイド内の他のどのコマンドよりも先に実行する価値があります。
2. 世代 2 と世代 3 を見分ける
世代 2 はシェルヘルパーと、編集が期待される vars ファイルを同梱していました。世代 3 はサブコマンド付きの easyrsa コマンドを一つ同梱し、テンプレートと明示的なオプションから設定を読みます。
その違いが、この話題の「ファイルが見つからない」報告のほとんどを説明します。2 向けに書かれたガイドは source vars と build-key の実行を指示しますが、3 のインストールにはどちらも含まれません。別マシンのコピーから消えたファイルを追いかけると、一つの PKI ディレクトリに対して二つの世代を動かすことになります。
3. プログラムディレクトリと PKI ワークスペースを分ける
インストールされたプログラムディレクトリは設計上読み取り専用です。PKI は CA、発行済みの証明書、秘密鍵を保持する別のディレクトリであり、正しく設定すべき権限を持つのはこちらです。
権威がすでに存在する場合は、その公開証明書を見つけて状態を確認し、何かに触れる前に判断してください。代替物を初期化せず、チュートリアルが別のパスを使ったからといってインデックスを上書きしないでください。公開テンプレートのコピーは無害ですが、発行者の秘密鍵のコピーはそうではなく、シェルでは二つの操作がほぼ同じに見えます。
4. パスを追いかける前にクォートを確認する
整形されたページからコピーしたテキストは、しばしばタイポグラフィックな引用符を伴って届きます。Bash が引用として扱うのは文書化された ASCII の区切り文字だけなので、曲がった引用符で囲まれたパスは存在しないリテラルなファイル名になります。
printf '%s\n' "$EASY_RSA"これは環境全体ではなく一つの変数の値を出力します。値に余計な文字や空白が含まれるかを問うときにはこれが望ましく、EASY_RSA が世代 3 でも設定を選ぶと決めつけず、お使いのリリースについて文書化された PKI ディレクトリオプションを使ってください。
5. 何かを再初期化する前に止める
プログラムの世代、インストール済みのパス、ワークスペースの役割が一致したら、残るエラーは権限か状態の欠落の問題である可能性が高く、別の回避策ではなく独自の診断に値します。
別のリリースのキャッシュ済みパッケージをインストールしたり、ディレクトリを再帰的にコピーしたり、空の発行者レコードを作成したりすると、元の不一致が隠れ、二つ目の不一致が加わります。何かを変更する前に、バージョン、パス、正確なエラーを書き留めてください。この三つが次の一歩を推測ではなく判断に変え、次の人が同じ調査を繰り返すのを防ぎます。