web-dev-qa-db-ja.com

OpenSSLにWindowsVistaでRANDFILEを書き込ませるにはどうすればよいですか?

私が走るとき:

openssl genrsa -out mykey.key 2048

次のエラーが発生します。

unable to write 'random state'
    e is 65537 (0x10001)

私のグーグルは、これがVistaのアクセス許可の問題の一種であることを示唆しています。 Vistaにこのファイルの書き込みを許可するにはどうすればよいですか、またはopensslを構成してそれを回避するにはどうすればよいですか?

17
Iain

根本的な問題は、OpenSSL構成ファイルのRANDFILE変数がWindowsで無視されることです。これは 長年の問題 であり、ターゲットのWindowsプラットフォームがx86であるかx64であるかに関係なく、OpenSSLv1.0aリリースの時点で引き続き存在します。

しかし、楽しく簡単な解決策があります。次のように、通常の環境変数を使用してRANDFILE値を設定するだけです。

set RANDFILE=.rnd

この値は一時的なものであるため、新しいDOSボックスごとに再発行するか、バッチファイルでスクリプト化する必要があります。

61
judoman

私はこれが役立つかもしれないことを発見しました: OpenSSLを使用して「ランダムな状態」を書くことができないとはどういう意味ですか?

また、ここで: http://adamyoung.net/OpenSSL-unable-to-write-random-state

ここに提案があります http://www.mail-archive.com/[email protected]/msg51344.html Vistaでそれを機能させる方法について。

cmd.exeの場所を見つけ、右クリックして管理者として実行します

4
John Boker

同じ問題がありましたが、Windows 7の場合、簡単に解決できました。HOMEというシステム環境変数を作成し、.rndファイルを配置するディレクトリに設定しました。OpenSSLが.rndファイルの場所を認識していなかったため、問題は解決しました。だった(私はそれを持っていなかったので)そしてそれがそれを作成するのであればそれをどこに置くべきかわからなかった。環境変数HOMEにディレクトリを設定するとすぐに(c:\で問題ありません!)、OpenSSLでキー生成を再実行すると、すぐに機能しました。確認するために、作成したキーと適切な内容が含まれていることを確認しました。また、HOME環境変数を設定したディレクトリを確認したところ、.rndファイルがそこにあることがわかりました。これが誰かに役立つことを願っています:-)

3
Lee-anne

HOME変数を環境変数に追加します。

0
zengkun100

問題は、スクリプトにアクセス権がないか、ファイルが見つからないことです。

ソリューション:

名前が[〜#〜] randfile [〜#〜]で値が%USERPROFILE%.rndのシステム変数を作成します。

%USERPROFILE%は、ユーザープロファイルへのパスを自動的に挿入するシステム変数であることに注意してください。

0
Søren Kjeldsen