openshift:无法写入“随机状态”

R.W*_*R.W 5 openssl csr

我正在尝试在 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)
Run Code Online (Sandbox Code Playgroud)

我已经安静地研究了一下并尝试了几件事

  1. 切换到数据目录或其他用户有权限的目录,然后执行命令。这没有用。同样的错误
  2. 有些人建议以 sudo 的身份运行此命令。但我不能在 openshift 服务器上这样做
  3. 其他人提到使用此命令删除 .rnd 文件 sudo rm ~/.rnd ,我再次无法在 openshift 上运行它。

任何指针?我很困惑这发生在一个干净的新应用程序上。

小智 6

发生此错误的原因是不允许您在 Openshift 上的主目录中创建文件。此命令尝试在 at 创建文件,$HOME/.rnd您会看到错误,因为无法创建文件。

您必须告诉openssl使用哪个文件来写入随机状态,并通过导出$RANDFILE环境变量来实现。在 Openshift 上,您可以在$OPENSHIFT_DATA_DIR目录中写入,因此创建命令如下:

export RANDFILE=$OPENSHIFT_DATA_DIR/.rnd
openssl genrsa -des3 -out $OPENSHIFT_DATA_DIR/myApp.key 2048
Run Code Online (Sandbox Code Playgroud)