openshift: невозможно написать "случайное состояние"

Я пытаюсь сгенерировать CSR, используя openssl на openshift. Я сталкивался с этим, когда я запускаю команду, используя SSH.

openssl genrsa -des3 -out myApp.key 2048
Generating RSA private key, 2048 bit long modulus
...........+++
.....................................................................+++
unable to write 'random state'
e is 65537 (0x10001)

Я немного исследовал тишину и попробовал несколько вещей

  1. Перейдите в каталог данных или другой каталог, в котором у пользователя есть права, а затем выполните команду. Это не сработало. Та же ошибка
  2. Некоторые люди предложили запустить эту команду как sudo. Но я не могу сделать это на серверах openshift
  3. Другие упоминали об удалении файлов.rnd с помощью этой команды sudo rm ~/.rnd, и снова я не могу запустить это в openshift.

Есть указатели? Я сбит с толку, что это происходит на чистом новом приложении.

3 ответа

Эта ошибка возникает из-за того, что вы не можете создавать файлы в своем домашнем каталоге в Openshift. Эта команда пытается создать файл в $HOME/.rnd и вы видите ошибку, потому что файл не может быть создан.

Вы должны сказать openssl какой файл использовать для записи случайного состояния, и вы делаете это путем экспорта $RANDFILE переменная окружения. На Openshift вы можете написать в $OPENSHIFT_DATA_DIR каталог, поэтому создайте команду следующим образом:

export RANDFILE=$OPENSHIFT_DATA_DIR/.rnd
openssl genrsa -des3 -out $OPENSHIFT_DATA_DIR/myApp.key 2048

Подобное решение, но подкованный для меня я нашел здесь.

Итак, я сделал следующее:

mkdir ~/"directory where certificates will be generated" 
cd ~/"directory where certificates will be generated"
touch .rnd
export RANDFILE="~/"directory where certificates will be generated"/.rnd"

Сейчас openssl genrsa -des3 -out server.key 2048 Команда работает правильно для меня.

На моей машине эта проблема возникала из-за того, что файл.rnd принадлежал пользователю root, а не моему пользователю.

Смена владельца решила мою проблему:

sudo chown $USER:$USER ~/.rnd
Другие вопросы по тегам