サーバーの管理セクションを保護するために自己署名 SSL 証明書を生成していますが、OpenSSL から次のメッセージが表示され続けます。
「ランダム状態」を書き込めません
これは何を意味するのでしょうか?
これはUbuntuサーバーにあります。最近のセキュリティの脆弱性を修正するために libssl をアップグレードしました。
サーバーの管理セクションを保護するために自己署名 SSL 証明書を生成していますが、OpenSSL から次のメッセージが表示され続けます。
「ランダム状態」を書き込めません
これは何を意味するのでしょうか?
これはUbuntuサーバーにあります。最近のセキュリティの脆弱性を修正するために libssl をアップグレードしました。
実際には、これが発生する最も一般的な理由は、ホーム ディレクトリの .rnd ファイルがアカウントではなくルートによって所有されていることです。簡単な修正:
sudo rm ~/.rnd
詳細については、OpenSSL FAQのエントリを次に示します。
openssl コマンド ライン ユーティリティは、「PRNG がシードされていません」というエラー メッセージで中止されず、「「ランダムな状態」を書き込めません」と不平を言うことがあります。このメッセージは、デフォルトのシード ファイルを参照しています (前の回答を参照)。考えられる理由は、RANDFILE も HOME も設定されていないため、デフォルトのファイル名がわからないことです。(0.9.6までのバージョンでは、この場合カレントディレクトリにファイル「.rnd」を使用していましたが、0.9.6aで変更されました。)
したがって、RANDFILE、HOME、およびファイルシステム内のそれらの場所への書き込み権限を確認します。
すべてが順調に進んでいると思われる場合は、straceを実行して、正確に何が起こっているかを確認できます。
この質問は Linux に関するものですが、Windows でも同じ問題がありました。コマンドプロンプトを機能させるには、「管理者として実行」モードでコマンドプロンプトを起動する必要があることがわかりました。そうしないと、「ランダムな状態」エラーを書き込めません。
Windows プラットフォームでのもう 1 つの問題として、コマンド プロンプトを管理ユーザーとして実行していることを確認してください。
これで何回噛まれたかわかりません…
どうやら、シード ファイルへのアクセス許可を得るには、OpenSSL をルートとして実行する必要がありました。
Windowsサーバーでも同じことがありました。次に、vars.bat
which を変更することでわかりました:
set HOME=C:\Program Files (x86)\OpenVPN\easy-rsa
その後、最初からやり直してください。すべて問題ありません。
$RANDFILE 環境変数を設定するか、$HOME/.rnd ファイルを作成する必要があります。( OpenSSL FAQ )。(もちろん、そのファイルに対する権利が必要です。ここでの他の回答はそれに関するものです。ただし、最初にファイルとそれへの参照が必要です。)
バージョン 0.9.6 までの OpenSSL は、シード ファイルを現在のディレクトリのファイル「.rnd」に書き込みました。バージョン 0.9.6a では、デフォルトのシード ファイルはありません。OpenSSL 0.9.6b 以降は 0.9.6a と同様に動作しますが、環境変数が設定されていない場合、Windows システムの HOME にはデフォルトの「C:\」が使用されます。
デフォルトのシード ファイルが存在しないか、短すぎる場合は、「PRNG がシードされていません」というエラー メッセージが表示されることがあります。
$RANDFILE 環境変数と $HOME/.rnd は、OpenSSL コマンド ライン ツールでのみ使用されます。OpenSSL ライブラリを使用するアプリケーションは、エントロピー ソースを指定するための独自の構成オプションを提供します。アプリケーションに付属のドキュメントを確認してください。
私にとっての問題は、ホーム ディレクトリに .rnd があったのに、それが root によって所有されていたことです。それを削除してopensslコマンドを再発行すると、これが修正されました。