我正试图在openshift上使用openssl生成一个CSR。 我使用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)
我已经研究了一下,并尝试了几件事情
任何指针? 我很困惑,这是一个干净的新应用程序正在发生。
发生此错误是因为您不允许在您的主目录中创build文件在Openshift上。 这个命令试图在$HOME/.rnd创build一个文件,并且你看到错误,因为这个文件不能被创build。
您必须告诉openssl使用哪个文件来编写随机状态,并通过导出$RANDFILE环境variables来实现。 在Openshift上,你可以写入$OPENSHIFT_DATA_DIR目录,所以创build命令如下:
export RANDFILE=$OPENSHIFT_DATA_DIR/.rnd openssl genrsa -des3 -out $OPENSHIFT_DATA_DIR/myApp.key 2048
类似的解决scheme,但对我来说,我发现这里的精明。
所以我做了下一个:
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”文件是由根而不是我的用户拥有。
改变主人解决了我的问题:
sudo chown $USER:$USER ~/.rnd