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)
Я немного исследовал тишину и попробовал несколько вещей
- Перейдите в каталог данных или другой каталог, в котором у пользователя есть права, а затем выполните команду. Это не сработало. Та же ошибка
- Некоторые люди предложили запустить эту команду как sudo. Но я не могу сделать это на серверах openshift
- Другие упоминали об удалении файлов.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