我正在尝试使用OpenSSL(Apache 2.2 + mod_ssl附带的版本)创build一个自签名的SSL证书。 OpenSSL二进制文件位于C:\Web\Apache2.2\bin ,我使用的configuration文件是C:\Web\Apache2.2\conf\openssl.cnf 。 我已经执行了以下命令:
(我将使用换行符使其更具可读性。)
openssl req -config ..\conf\openssl.cnf -new -out ..\conf\eduardo.csr -keyout ..\conf\eduardo.pem # Then I entered country code, province, city, etc. # This step worked correctly. openssl rsa -in ..\conf\eduardo.pem -out ..\conf\eduardo.key # Then I entered my pass phrase. openssl x509 -in ..\conf\eduardo.csr -out ..\conf\eduardo.cert -req -signkey ..\conf\eduardo.key -days 1000000
而且,当执行最后一步时,我得到了以下输出:
Loading 'screen' into random state - done Signature ok subject=/C=PE/ST=Lima/L=Lima/... Getting Private Key unable to write 'random state' <--
这个错误是什么意思,我该如何解决?
openssl会尝试将“随机状态”写入文件,但是它所使用的目录的权限不允许创build文件。 看到:
然后执行以下操作,
设置RANDFILE =“D:\ path_to_certs \ .rnd”这里如果你设置RANDFILEpath而不提及.rnd,那么它会给出消息“Unable to write random state”,而openssl没有创build.rnd随机状态到文件。
C:\的OpenSSL的Win32 \ BIN \ openssl.exe
它为我工作。
对于我来说,在Windows服务器上,解决方法是简单地确保通过“以pipe理员身份运行”打开命令提示符