Як виправити "неможливість написати" випадковий стан "" у openssl


77

Під час створення приватного ключа за допомогою цієї команди

genrsa -out my-prvkey.pem 1024

Він видає помилку, як показано нижче

Завантажити "екран" у випадковий стан - виконано Генерацію приватного ключа RSA, модуль довжиною 1024 біта ................................ ......... +++++++ ........................... +++++++ ++ неможливо записати `` випадковий стан '' e - 65537 (0 * 10001)

Це створює будь-які проблеми під час створення публічного сертифіката. Я запускаю цю команду у Windows. Хто-небудь може мені допомогти для виправлення?


1
Це слід знову відкрити, якщо не на stackoverflow.com, на superuser.com.
Яків

Відповіді:


116

Найшвидшим рішенням є: встановити змінну середовища RANDFILE у шлях, куди можна записати файл "випадкового стану" (звичайно, перевірити дозволи на доступ до файлу), наприклад. у вашому командному рядку:

set RANDFILE=C:\MyDir\.rnd
openssl genrsa -out my-prvkey.pem 1024

Додаткові пояснення: OpenSSL у Windows намагається зберегти файл "випадкового стану" у такому порядку:

  1. Шлях, взятий із змінної середовища RANDFILE
  2. Якщо встановлено змінну середовища HOME, тоді: $ {HOME} \. Rnd
  3. C: \. Rnd

Я майже впевнений, що у вашому випадку це закінчується спробою зберегти його в C: \. Rnd (і це не вдається через відсутність достатніх прав доступу). На жаль, OpenSSL не друкує шлях, який насправді намагається використовувати в будь-яких повідомленнях про помилки.


6
Вибачте, це було закрито, товаришу ... це чудове питання, і Google піднімає його першим.
crazy4jesus

1
Це також чудово працює без необхідності запускати адміністратора. (Хоча достатньо лише налаштувань HOME.)
Synetech

4
Якщо ви використовуєте PowerShell, вам захочеться використовувати $env:RANDFILE = 'C:\MyDir\.rnd'(у PowerShell setце псевдонім, Set-Variableякий не має нічого спільного зі змінними середовища!)
Джеф Камера

32

Також може бути, що вам потрібно запустити консоль як адміністратор. У Windows 7 утримуйте ctrl+shiftпри запуску вікна консолі.


Я вважаю, що це, мабуть, повинна була бути країною, якщо ви не знаєте, що це виправлення, але ваша проза передбачає інше
Майк,

3
Ви також можете отримати доступ адміністратора до cmd, натиснувши кнопку Пуск, введіть cmd, клацніть правою кнопкою миші cmd.exe та запустіть як адміністратор. :)
Тайлер Рафферті

31

просто введіть цей рядок у командному рядку:

set RANDFILE=.rnd

Я встановив openssl у Windows 10, я запустив вище команди в командному рядку. openssl все ще видає ту ж помилку, що і OpenSSL> genrsa -out key.pem Завантаження «екрана» у випадковий стан - виконано Створення приватного ключа RSA, модуль довжиною 512 біт ................ ..................................... +++++++++++++. ...... ++++++++++++ неможливо написати `` випадковий стан '' e - 65537 (0x10001)
Рохіт Боруде,


4

Я не знайшов, де знаходиться файл .rnd, тому я запустив cmd як адміністратор, і він працював як принада.


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.