Как заставить OpenSSL написать RANDFILE в Windows Vista? - PullRequest
17 голосов
/ 09 февраля 2010

Когда я бегу:

openssl genrsa -out mykey.key 2048

Я получаю следующую ошибку:

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

Мой поиск в Google предполагает, что это какая-то проблема с разрешениями в Vista. Как я могу позволить Vista написать этот файл или как настроить openssl для его обхода?

Ответы [ 5 ]

62 голосов
/ 17 июня 2010

Основная проблема заключается в том, что переменная RANDFILE в файле конфигурации OpenSSL игнорируется в Windows. Это была давняя проблема , которая продолжает существовать с версии OpenSSL v1.0a, независимо от того, является ли целевая платформа Windows x86 или x64.

Хотя есть восхитительно простое решение. Просто используйте обычную переменную окружения для установки значения RANDFILE, например

set RANDFILE=.rnd

Поскольку это значение эфемерно, его необходимо переиздавать для каждого нового блока DOS или записывать в сценарий в пакетном файле.

4 голосов
/ 09 февраля 2010

Я обнаружил, что это может помочь: При использовании OpenSSL, что означает «невозможно записать« случайное состояние »»?

также здесь: http://adamyoung.net/OpenSSL-unable-to-write-random-state

здесь есть предложение http://www.mail-archive.com/openssl-users@openssl.org/msg51344.html о том, как заставить его работать в Vista.

найдите местоположение cmd.exe, щелкните правой кнопкой мыши и запустите от имени администратора

3 голосов
/ 01 мая 2013

У меня была та же проблема, но для Windows 7. Легко решив, я создал системную переменную среды с именем HOME и установил ее в каталог, в котором я хотел получить мой файл .rnd. Это решило проблему, поскольку OpenSSL не знал, где находится Файл .rnd был (потому что у меня его не было), и он не знал, куда его поместить, если он должен был его создать. Как только я установил переменную окружения HOME в каталог (c: \ отлично!), Я перезапустил генерацию ключей в OpenSSL, и она сразу же заработала. Чтобы проверить, я проверил ключ, который я создал, и у него было надлежащее содержание. Я также проверил каталог, в котором я установил свою переменную окружения HOME, и вот, файл .rnd был там! Надеюсь, это кому-нибудь поможет: -)

0 голосов
/ 20 августа 2014

Проблема в том, что в скрипте отсутствуют некоторые права доступа или невозможно найти файл.

Решение:

Создать системную переменную с именем RANDFILE и значением % USERPROFILE% .rnd

Обратите внимание на % USERPROFILE% , системную переменную, которая автоматически вставляет путь к вашему профилю пользователя.

0 голосов
/ 11 мая 2010

Добавьте переменную HOME в переменные среды.

...